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

solo esquema mysqldump, actualización de esquema sin descartar

¿Cómo sabría MySQL qué actualizar? No puede saber en qué estado estará la base de datos de otra persona, por lo que no puede saber qué actualizaciones aplicar. Además, las actualizaciones requieren con frecuencia algo más que cambiar el esquema; pueden requerir cambios en los datos que ya existen, o pueden necesitar que los datos se muevan del esquema anterior al nuevo. Nunca obtendrá algo que detecte automáticamente todo eso.

La solución correcta es escribir migraciones. Cada vez que cambia la base de datos, en lugar de simplemente cambiar el esquema de su copia de desarrollo usted mismo, escribe una secuencia de comandos para actualizar el esquema anterior al nuevo (y generalmente una secuencia de comandos para volver al esquema anterior, para que pueda hacer eso si necesita revertir una actualización). Ese script hace todo lo que necesita para cambiar el esquema, mover datos y cosas por el estilo.

La mayoría de los marcos web modernos, como Ruby on Rails , tenga soporte para migraciones para que sea más fácil realizar un seguimiento de las migraciones que ya ha ejecutado. Si no está utilizando un marco que admita migraciones, no sería demasiado difícil escribir sus propios scripts para aplicar migraciones. Simplemente numere cada migración, o ponga una fecha en ella, y mantenga una tabla en su base de datos que almacene solo la versión actual del esquema en el que se encuentra. Cuando ejecuta su secuencia de comandos de migración, si hay migraciones más nuevas que la versión actual, aplique esas secuencias de comandos en orden y luego actualice el número en la base de datos que indica en qué versión se encuentra.