php - symfony2 - findall symfony 3
¿Cuál es la mejor manera de hacer pequeñas actualizaciones de esquema con Doctrine/Symfony? (2)
¿Cuál es la mejor manera de hacer pequeñas actualizaciones de esquema a su aplicación symfony / doctrine?
Mi problema es que estoy trabajando en un nuevo proyecto paralelo y de vez en cuando me encuentro agregando una nueva columna aquí, una nueva columna allí cuando encuentre la necesidad. Sin embargo, mi base de datos ya tiene datos existentes y no quiero ejecutar una reconstrucción completa y soltar mi base de datos con los cambios cada vez.
Tampoco quiero escribir accesorios. Son molestos, y es mucho más fácil usar mi aplicación para insertar datos y mantenerlos durante el desarrollo. Tampoco quiero escribir una migración para agregar una o dos columnas, especialmente cuando estoy haciendo esto mucho.
Son mis únicas opciones para:
- realizar cambios en el archivo de esquema y borrar el archivo db después de cada cambio de esquema -o--
- actualizar el archivo de esquema y ejecutar manualmente las declaraciones alter en mi db
En última instancia, lo que me gustaría hacer es realizar cambios en mi base de datos y hacer que Symfony descubra cómo debería ser el archivo de esquema, o hacer cambios en el archivo de esquema y hacer que Symfony descubra qué cambios nuevos realizar en el archivo existente base de datos.
¡Por favor ayuda!
Gracias. La primera vez que uso SO, no puedo esperar para ver si recibo una respuesta.
Mira esta publicación:
¿Puedes generar una migración desde una tabla existente con Doctrine?
y este enlace: http://www.doctrine-project.org/documentation/cookbook/1_0/en/code-igniter-and-doctrine:setup-command-line-interface
Hemos estado generando los cambios de la doctrina cambiando el archivo yaml, ejecutando el comando doctrine con la opción generate-migrations-diff para producir un archivo de migración, luego usando la opción migrate para migrar el cambio.
Sé exactamente a que te refieres. Hay dos maneras en que puede decirle a Symfony cuál es la estructura de su base de datos:
- Crear un archivo yaml -> ejecutar el comando build-sql -> ejecutar el comando insert-sql
- Crea una base de datos dentro de tu RDBMS -> ejecuta el comando build-schema
Con el método 1, tus datos se borran cada vez. Con el método 2, tus datos permanecen intactos. El único problema con el método 2 es que eliminarás cualquier atributo específico de la doctrina que tengas en tu archivo yaml y tendrás que volver a agregarlos. Sin embargo, para mí es mucho menos doloroso. culo que tener que volver a cargar sus datos en su base de datos.