Symfony 4原则甚至在开发环境中也使用缓存

问题描述 投票:1回答:1

我处于开发模式(.env中的APP_ENV = dev),每次我更改实体并运行'make:migration'命令时,都会返回我没有数据库更改的信息。在我运行“ cache:clear”命令后,它将考虑更改并制作了迁移文件。真烦人。您有什么想法吗?

我使用'symfony服务器:启动'来运行开发服务器,也许它来自这里?

symfony caching doctrine
1个回答
0
投票

如果这是引起问题的捆绑软件中的注释缓存,那么简单的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,实体更新流程可能如下所示:

  1. 更新您的实体类-您的php /注解更改

  2. 清除所有元数据缓存条目php bin/console doctrine:cache:clear-metadata

  3. 通过将当前数据库与映射信息进行比较来生成迁移。php bin/console doctrine:migrations:diff

  4. 查看一组迁移的状态php bin/console doctrine:migrations:status

  5. 部署迁移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?

希望这会帮助您解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.