sql >> Base de Datos >  >> RDS >> Mysql

Comenzando con el control de versiones de esquemas mysql sin exagerar. Buenas soluciones?

Una forma sencilla para una pequeña empresa:volcar su base de datos a SQL y agregarla a su repositorio. Luego, cada vez que cambie algo, agregue los cambios en el archivo de volcado.

Luego puede usar diff para ver los cambios entre versiones, sin mencionar los comentarios que explican sus cambios. Esto también lo hará virtualmente inmune a las actualizaciones de MySQL.

El único inconveniente que he visto en esto es que debe recordar agregar manualmente el SQL a su archivo de volcado. Puedes entrenarte para recordar siempre, pero ten cuidado si trabajas con otros. Perder una actualización podría ser un dolor más adelante.

Esto podría mitigarse mediante la creación de un script elaborado para que lo haga por usted cuando se envíe a Subversion, pero es demasiado para un espectáculo de un solo hombre.

Editar: En el año que pasó desde esta respuesta, tuve que implementar un esquema de control de versiones para MySQL para un pequeño equipo. Agregar manualmente cada cambio se consideró una solución engorrosa, como se mencionó en los comentarios, por lo que decidimos volcar la base de datos y agregar ese archivo al control de versiones.

Lo que descubrimos fue que los datos de prueba terminaban en el basurero y hacían bastante difícil averiguar qué había cambiado. Esto podría resolverse volcando solo el esquema, pero esto era imposible para nuestros proyectos ya que nuestras aplicaciones dependían de ciertos datos en la base de datos para funcionar. Eventualmente volvimos a agregar cambios manualmente al volcado de la base de datos.

Esta no solo fue la solución más simple, sino que también resolvió ciertos problemas que algunas versiones de MySQL tienen con la exportación/importación. Normalmente tendríamos que volcar la base de datos de desarrollo, eliminar cualquier dato de prueba, entradas de registro, etc., eliminar/cambiar ciertos nombres cuando corresponda y solo entonces poder crear la base de datos de producción. Al agregar cambios manualmente, pudimos controlar exactamente lo que terminaría en producción, poco a poco, para que al final todo estuviera listo y pasar al entorno de producción fuera lo menos doloroso posible.