2015-01-20 4 views
7

Мы сохраняем кеш доктрины в redis и используем capistrano для развертывания. Все работает хорошо, пока нам не нужно удалить поле объекта.Очистить кэш доктрины в redis при развертывании

Когда после установки команды в композиторе выполняются мы получаем ошибки как:

[ReflectionException] ** [из субъектов собственности \ PlayerRecord :: $ shirtNumber не существует

$shirtNumber является поле, которое мы удалили. Чтобы продолжить, нам просто нужно очистить кэш доктрины, но поскольку он находится в базе данных redis, кэш используется совместно с продукцией.

Вопрос в том, как мы можем динамически изменять настройки соединения для redis при каждом развертывании? Только идеи, которые приходят на мой взгляд, являются:

  1. изменить parameters.yml на начале развертывания
  2. использования переменной среды, которая будет меняться на каждом развертывание
  3. движения REDIS параметров подключения к другому файлу, который будет SYMLINK к одна из конфигураций

Есть ли у вас другие идеи или какой из них лучше по вашему мнению?

+0

Этот вопрос был сообщен в Http: //www.doctrine-project. org/jira/browse/DDC-3230, но он еще не разрешен –

ответ

3

Похоже, я пытался перекомплементировать вещи из-за своего собственного недостатка знаний.

Я решил проблему с помощью Doctrine Cache namespaces

Я использую SncRediBundle и решение просто использовать этот конфиг:

doctrine: 
    metadata_cache: 
     client: cache 
     namespace: "%kernel.root_dir%" 
     entity_manager: default 
Смежные вопросы