迁移和重新生成Symfony 3实体的最佳方法
我正在学习Symfony 3,想知道创建迁移,然后根据数据库迁移中更改的模式重新生成实体的最佳方法是什么 目前,我所做的是: 安装此捆绑包:迁移和重新生成Symfony 3实体的最佳方法,symfony,migration,Symfony,Migration,我正在学习Symfony 3,想知道创建迁移,然后根据数据库迁移中更改的模式重新生成实体的最佳方法是什么 目前,我所做的是: 安装此捆绑包: "doctrine/doctrine-migrations-bundle": "^1.0" 更改了我的条令.orm.yml文件中的字段 在windows命令行中,我写道: php bin/console doctrine:migrations:diff 然后 这成功地创建了一个迁移,其中包含一个名为“迁移版本”的新表和一个同名的新实体 我现在的问题是,
"doctrine/doctrine-migrations-bundle": "^1.0"
更改了我的条令.orm.yml
文件中的字段
在windows命令行中,我写道:
php bin/console doctrine:migrations:diff
然后
这成功地创建了一个迁移,其中包含一个名为“迁移版本”的新表和一个同名的新实体
我现在的问题是,已经更改的实体仍然有旧数据,我希望新的迁移能够更新这个特定的实体,而这里我被卡住了
我是否要手动删除它并在命令行中键入
php bin/console doctrine:generate:entities AppBundle
谢谢您的帮助。首先,迁移只会影响您的数据库。
migrations\u versions
是Symfony存储信息的内部表,您无需为此表操心
迁移的工作流程如下所示:
原则:生成:实体AppBundle:EntityName
(这将使用新字段创建实体)李>
原则:迁移:diff
(这将自动检查差异,并创建一个会影响数据库的迁移)doctrine:migrations:migrate
将更改持久化到数据库原则生成的实体:generate:entities
与迁移概念无关(它只是带有php对象的db表的映射)
生成实体时,Symfony会检测新字段(来自EntityName.orm.yml)并在实体类中附加这些字段的setter/getter。Simfony不会从实体类中删除旧内容,因为您可以在实体类中添加自己的逻辑,并且不希望在命令运行后将其删除。如果要删除它们,只需手动执行,或者如果没有在其中添加任何逻辑,则只需删除文件并重新运行原则:生成:实体
希望有帮助 您是否为表创建了实体?据我所知,您不希望丢失数据。实际上,您必须改进您的迁移,使它能够满足您的需要,并在紧急情况下保持回滚的方式。如果你描述一下你有什么样的改变,我会尽力帮助你。
php bin/console doctrine:generate:entities AppBundle