management - Pon la base de datos MySQL bajo control de versión?
mysql flyway (5)
Actualmente estoy usando SVN para mis proyectos PHP. Estaba pensando que también debería tener mi base de datos bajo control de versiones, pero ¿cuál es la mejor manera de hacerlo? ¿Acabo de crear una carpeta db en mi proyecto en SVN, pegar cambios SQL en un archivo llamado from_1.0_to_2.0.sql y commit?
Puede usar la herramienta MySQL Workbench .
El archivo generado con la herramienta de modelado se podría guardar bajo SVN. La herramienta le permite sincronizar su base de datos con el modelo de forma bidireccional.
Tenga en cuenta que recientemente (diciembre de 2012), tiene otra opción: DBV (versión de base de datos)
Se basa en este proyecto de Github y es una aplicación web de control de versiones de base de datos que ofrece administración de esquemas, scripts de revisión y más.
Revisa
Liquibase
http://www.liquibase.org/quickstart
La idea es esta:
Todos los cambios de la base de datos se almacenan en una forma legible por humanos pero rastreable y se controlan en el control de la fuente. - Portada de Liquibase.org
Esta es una fantástica pieza de software que le permite versionar su base de datos, en aproximadamente el mismo proceso que la respuesta mejor calificada, excepto que esta rueda ya se ha escrito y está lista para rodar. Lo uso en el trabajo, es una solución fantástica. Implemente usted mismo si quiere aprender cómo funciona, pero Liquibase funciona muy bien si desea una herramienta para hacer las cosas.
Las migraciones en Laravel - framework PHP parece realmente útil, pero hay una gran PERO. Solo hay una herramienta en línea para diseñar el esquema en el lenguaje ORM de Laravel llamado "elocuente" ( aquí ). Por lo tanto, sigue siendo inutilizable si necesita diseñar y mantener la base de datos de algún proyecto serio.
Siempre que realice cambios en su base de datos, debe guardar esos cambios en una migración, que luego puede ejecutar en otros servidores al mismo tiempo que actualiza su código. Pero básicamente tienes la idea correcta. Puede escribir algunas herramientas para hacerlo más automatizado; por ejemplo, versione cada archivo y luego cree una tabla como migration_version
en su base de datos, que contendrá la versión actual de la base de datos. A continuación, puede crear un script de migración que ejecutará todas las migraciones necesarias para actualizar la base de datos.
Tenga en cuenta que si desea versiones de db bidireccionales (para poder volver a la versión de db anterior también), debe escribir las consultas necesarias para cada versión.
También hay algunas herramientas que pueden ayudarlo a escribir las migraciones, como MySQLdiff