部署时清除 Redis 中的 Doctrine 缓存

7
我们在redis中保留了我们的doctrine缓存,并使用capistrano进行部署。一切都很顺利,直到我们需要从实体中删除一个字段。
当composer中的post install命令执行时,我们会收到如下错误:
[ReflectionException] **[out Property Entities\PlayerRecord::$shirtNumber does not exist] $shirtNumber是我们删除的字段。为了能够继续,我们只需清除doctrine缓存,但由于它在redis数据库中,因此缓存与生产环境共享。
问题是,我们如何在每次部署时动态更改redis的连接设置?我想到的唯一想法是:
1. 在部署开始时修改parameters.yml 2. 使用每次部署时更改的环境变量 3. 将redis连接设置移动到另一个文件中,该文件将链接到其中一个配置
您是否有其他想法或您认为哪种方法更好?

这个问题在http://www.doctrine-project.org/jira/browse/DDC-3230中被报告,但尚未解决。 - Javi H. Gil
1个回答

8

看起来我因为自己的知识不足而试图过度复杂化事情。

我使用Doctrine缓存命名空间解决了问题。

我正在使用SncRediBundle,解决方案很简单,只需使用以下配置:

  doctrine:
    metadata_cache:
      client: cache
      namespace: "%kernel.root_dir%"
      entity_manager: default

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接