使用内存中的当前数据库构建shema.yml文件,以与可用的schema.yml进行比较

时间:2012-07-17 05:55:53

标签: symfony1 symfony-1.4 propel

我一直在尝试根据我编写的行为在内存中创建schema.yml内容。我想测试开发人员对schema.yml所做的任何更改是否符合当前数据库字段和外键引用。我看到构建模式的任务类,但是没能找到直接的方法来做到这一点,或者我在这里遗漏了什么?这可以通过利用已经可用的symfony api而不是编写我自己的解决方案来完成吗?

提前致谢。

P.S。我使用Propel作为ORM

1 个答案:

答案 0 :(得分:0)

为什么不调整迁移任务来定义当前模式(在内存中)与开发人员可能修改的模式之间的差异?

php symfony doctrine:generate-migrations-diff

此任务在生成的类和当前schema.yml之间生成差异。

你能做什么:

  • 根据新的schema.yml
  • 生成新模型(表单和过滤器)
  • 将此更改放入新文件夹(不是默认值)
  • 运行任务doctrine:generate-migrations-diff并为其提供新模型(表单和过滤器)的路径
  • 如果它生成迁移类:developper进行了一些更改,如果没有,那么每件事都可以。

编辑:(因为OP使用推进)

您的任务几乎相同in Propel(和the doc)。