Symfony Proyecto Propel: Cómo actualizar el esquema de base de datos sin reinicios?

StackOverflow https://stackoverflow.com/questions/2209942

  •  18-09-2019
  •  | 
  •  

Pregunta

He desplegado mi proyecto Symfony con el servidor y ahora quiero cambiar los modelos dentro schema.yml sin reseteo otras tablas de bases de datos sin relación y mantener los datos actuales. ¿Hay alguna característica de diferencias / actualización para el proyecto symfony propel?

¿Fue útil?

Solución

Tome un vistazo a sfPropelSqlDiffPlugin (disponible en el repositorio de plugins). He estado usando durante bastante tiempo y ha funcionado bien para mí. No es perfecto (no trata demasiado bien con cosas no estándar, como la especificación de un sqltype en su esquema, por ejemplo), pero se ha hecho la vida mucho más fácil para mí.

En lugar de confiar en el plugin para hacer la ejecución real de SQL diffed, prefiero hacer:

./ symfony propel: build-sql-diff

Esto crea un archivo SQL en el directorio de datos, que luego se puede inspeccionar / editar manualmente antes de ejecutar la secuencia de comandos.

Otros consejos

Puede generar el SQL mediante el uso de la 'propel: build-sql' comando. El resultado es un archivo SQL válida que se puede importar a ti mismo. En nuestro proyecto muy grande que acabamos de hacer un seguimiento de la misma SQL. Construimos los modelos y generar el SQL. A continuación copiamos el nuevo SQL generado en un archivo que contiene el código SQL para nuestra versión. Cuidar el SQL donde las mesas se cambian en lugar de crear, ya que se debe modificar manualmente la mesa por sí mismo.

No se puede hacer desde Symfony que yo sepa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top