【问题标题】:how to add actAs when using symfony doctrine:build-schema使用 symfony 学说时如何添加 actAs:build-schema
【发布时间】:2013-10-18 09:57:39
【问题描述】:

背景:

(1) 我使用 mysql workbench 来设计我的数据库。

(2) 然后我在 mysql 工作台中使用“同步模型”工具将我的修改应用到 mysql 数据库。

(3) 最后我使用symfony doctrine:build-schema 命令根据数据库生成schema.yml(由于某些遗留原因,我必须使用Symfony 1.4)。

问题来了:我想将actAs: { Timestampable: ~ } 添加到schema.yml,但symfony doctrine:build-schema 命令不能这样做。

我能想到的解决方案是编写一个 shell 来编辑 schema.yml。显然这不是一个优雅的解决方案。

非常感谢任何建议。

【问题讨论】:

    标签: symfony-1.4 mysql-workbench doctrine-1.2


    【解决方案1】:

    1) 命令symfony doctrine:build-schema会报什么错误

    2) 在 schema.yml 中尝试这样的代码

    Something:
      actAs:
        Timestampable:
      columns:
    ...
    

    【讨论】:

    • 在 Wow 上度过了整个周末,抱歉回复晚了。可能我没有描述清楚。命令 symfony 学说:build-schema 没有错误。我只希望命令 symfony 学说:构建模式自动将 'actas: Timestampable' 添加到 schemal.yml
    【解决方案2】:

    我使用MySQL Workbench Schema Exporter(一个开源的PHP库项目)来节省时间并完成建模过程中的所有数据库模型定义任务。查看此Installation Tutorial

    使用 MySQL Workbench Schema Exporter,您可以使用表注释来定义表行为。要为表定义添加时间戳行为,请将其放入您的 cmets:

    {MwbExporter:actAs}actAs: [Timestampable]{/MwbExporter:actAs}
    

    然后使用MySQL Workbench Schema Exporter 将您的模型(*.mwb 文件)导出到 YAML(*.yml 文件)并将其放在 ./config/schema/ 文件夹中为了创建一个 sql 脚本,然后将其加载到已经配置了 symfony 的数据库中。这简单!就像这样:

    1. 将模型导出到 YAML

      php bin/mysql-workbench-schema-export your_model.mwb

    2. 将 schema.yml 结果文件复制到 ./config/schema 文件夹位置

    3. 创建一个 sql 脚本

      php symfony doctrine:build-sql

    4. 现在使用以下方法构建您的模型:

      php symfony doctrine:build-model

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 2015-02-28
      • 2016-03-31
      • 1970-01-01
      相关资源
      最近更新 更多