Doctrine generate-migrations-diff中的额外changeColumns

Jos*_*kin 3 php migration doctrine symfony1

我正在不同的yaml模式文件之间生成迁移:即运行:

symfony doctrine:generate-migrations-diff

生成的迁移文件包含一大堆changeColumn调用,这些调用未在最后一个模式文件更改中添加.

例如,如果在不更改模式文件的情况下运行generate-migrations-diff,则应该获得一个空的up()函数.但是,为我生成的函数对我的数据库中的几乎每个表都有一个changeColumn调用.

我做错了什么或这是一个错误?

Chr*_*ams 10

generate-migrations-diff不会区分两个不同的yaml文件.它实际上会比较您的模型和您的yaml文件,然后根据差异生成迁移.如果从与yaml和类同步的db开始,则进行架构更改的工作流应为:

  1. 更改yaml文件
  2. generate-migrations-diff用您的(未更改的)模型来区分当前(已更改)的yaml.这将在doctrine/migrations目录中生成迁移文件(或者在doctrine配置中设置任何migrations_path).
  3. 迁移以运行在步骤2中创建的迁移并修改您的数据库
  4. generate-models-yaml基于yaml文件生成新类.这些是您指定生成的模型的位置(在doctrine配置中的models_path).
  5. generate-sql生成一个SQL文件.这将进入你的doctrine sql_path配置设置的位置.