symfony doctrine2 redis capistrano

symfony - Borrar caché de doctrina en redis en implementación



doctrine2 capistrano (1)

Parece que estaba tratando de complicar demasiado las cosas debido a mi propia falta de conocimiento.

Resolví el problema usando los espacios de nombres de Doctrine Cache

Estoy usando SncRediBundle y las soluciones fueron simplemente para usar esta configuración:

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

Mantenemos nuestro caché de doctrinas en redis y usamos capistrano para la implementación. Todo funciona bien hasta que tengamos que eliminar un campo en la entidad.

Cuando se ejecutan los comandos de post instalación en el compositor, obtenemos un error como:

[ReflectionException] ** [out Property Entities / PlayerRecord :: $ shirtNumber no existe

$shirtNumber es el campo que eliminamos. Para poder continuar solo necesitamos borrar la memoria caché pero debido a que está en la base de datos redis, la caché se comparte con la producción.

La pregunta es ¿cómo podemos cambiar dinámicamente la configuración de conexión para redis en cada implementación? Las únicas ideas que me vienen a la mente son:

  1. modifique parameters.yml al comienzo de la implementación
  2. usar la variable de entorno que cambiará en cada despliegue
  3. mover la configuración de conexión de redis a otro archivo que enlazará simbólicamente a una de las configuraciones

¿Tiene otras ideas o cuál es mejor en su opinión?