我处于开发模式(.env中的APP_ENV = dev),每次我更改实体并运行'make:migration'命令时,都会返回我没有数据库更改的信息。在我运行“ cache:clear”命令后,它将考虑更改并制作了迁移文件。真烦人。您有什么想法吗?
我使用'symfony服务器:启动'来运行开发服务器,也许它来自这里?
如果这是引起问题的捆绑软件中的注释缓存,那么简单的cache:clear可能无济于事。您是否尝试运行doctrine:migration:diff
?
您也可以尝试在命令中使用--flush
:
php bin/console doctrine:cache:clear-query --env=dev --flush
php bin/console doctrine:cache:clear-result --env=dev --flush
php bin/console doctrine:cache:clear-metadata --env=dev --flush
评论后更新:
我的意思是,用于部署实体的完整方法发生了变化。根据Symfony 4,实体更新流程可能如下所示:
更新您的实体类-您的php /注解更改
清除所有元数据缓存条目php bin/console doctrine:cache:clear-metadata
通过将当前数据库与映射信息进行比较来生成迁移。php bin/console doctrine:migrations:diff
查看一组迁移的状态php bin/console doctrine:migrations:status
部署迁移php bin/console doctrine:migrations:migrate --all-or-nothing
使用选项--all-or-nothing
同时运行的多个迁移将包装在单个事务中。如果一次迁移失败,所有迁移将被回滚。
有关来自官方来源的迁移的更多信息:https://symfony.com/doc/master/bundles/DoctrineMigrationsBundle/index.html
这里也解释了类似的问题:Update an entity in Symfony 4?
希望这会帮助您解决问题。