在部署中清除redis中的doctrine缓存

我们将我们的教条缓存保存在redis中,并使用capistrano进行部署。 一切工作都很好,直到我们必须删除实体上的字段。

当在composer中执行安装后命令时,我们会得到如下错误:

[ReflectionException] ** [out Property Entities PlayerRecord :: $ shirtNumber不存在

$shirtNumber是我们删除的字段。 为了能够继续,我们只需要清除doctrine缓存,但因为它位于redis数据库中,所以缓存与生产共享。

问题是我们如何动态地改变每个部署的redis连接设置? 我想到的唯一想法是:

  • 在开始部署时修改parameters.yml
  • 使用环境变量,每个部署都会发生变化
  • 将redis连接设置移动到符号链接到其中一个配置的另一个文件
  • 你有其他的想法,或者你认为哪个更好?


    因为我自己缺乏知识,所以我似乎试图让事情过度复杂化。

    我使用Doctrine Cache命名空间解决了这个问题

    我使用的是SncRediBundle,解决方案只是使用这个配置:

      doctrine:
        metadata_cache:
          client: cache
          namespace: "%kernel.root_dir%"
          entity_manager: default
    
    链接地址: http://www.djcxy.com/p/24281.html

    上一篇: Clear doctrine cache in redis on deploy

    下一篇: graphics into a Eclipse WebApp