小智 6
请注意:对实体进行任何更改后,必须生成新的迁移文件。实际上,此文件包含必须在数据库上进行的所有更改才能进行更新。要生成此文件(新的迁移版本),可以遵循以下命令:
$ bin/console doctrine:cache:clear-metadata
$ bin/console doctrine:migrations:diff
Run Code Online (Sandbox Code Playgroud)
在执行上述命令后,您已经成功生成了新版本文件,现在,如果您运行以下命令,则可以看到您有一个新的未执行版本文件:
$ bin/console doctrine:migrations:status
Run Code Online (Sandbox Code Playgroud)
最后,要执行新版本文件并更新数据库,您必须运行以下命令:
$ bin/console doctrine:migrations:migrate --all-or-nothing
Run Code Online (Sandbox Code Playgroud)
现在您的数据库已更新,并且在表中migration_versions您可以看到已添加了新版本。
成功的。
您可以遵循类似的模式:
User-entity 中的字段(注释)从 name 更改为 usernamebin/console doctrine:migrations:diffbin/console doctrine:migrations:migrate该doctrine:migrations:diff命令应检测到该字段已更改并为您创建相应的 SQL 查询,然后将其存储在原始文件旁边的 DoctrineMigrations 文件中。
在doctrine:migrations:migrate检测到这个新的迁移和以前没有执行,通过对检查doctrine_versions表,其中已执行的所有迁移版本存储。
另见:https : //www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/generating-migrations.html#diffing-using-the-orm