【问题标题】:Clear doctrine cache in redis on deploy在部署时清除 redis 中的学说缓存
【发布时间】:2015-01-20 16:18:59
【问题描述】:

我们将我们的学说缓存保存在 redis 中,并使用 capistrano 进行部署。在我们必须删除实体上的字段之前,一切正常。

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

[ReflectionException] ** [out 属性实体\PlayerRecord::$shirtNumber 不存在

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

问题是我们如何在每次部署时动态更改 redis 的连接设置?我想到的唯一想法是:

  1. 在部署开始时修改 parameters.yml
  2. 使用将在每次部署时更改的环境变量
  3. 将 redis 连接设置移动到另一个文件,该文件将符号链接到其中一个配置

您还有其他想法或您认为哪个更好?

【问题讨论】:

标签: symfony doctrine-orm redis capistrano


【解决方案1】:

看来我是因为自己缺乏知识而试图把事情复杂化。

我使用Doctrine Cache namespaces解决了这个问题

我正在使用SncRediBundle,解决方案就是使用这个配置:

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

【讨论】:

    猜你喜欢
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2016-09-10
    • 2014-11-13
    • 2021-02-14
    • 2015-07-16
    相关资源
    最近更新 更多