Durante los momentos de gran desarrollo, el esquema de la base de datos cambia de forma rápida y continua, y cuando nuestra versión semanal de la versión beta se inicia, el esquema ha cambiado tanto que la única opción sensata es destruir todas las tablas Puedo y copiar las nuevas versiones de mi base de datos de desarrollo. Obviamente, esto no va a funcionar una vez que lo iniciemos, ya que los datos de producción son una receta para el desastre, así que me preguntaba qué estrategias había para gestionar los cambios de esquema de la base de datos de una versión a otra.
Algunos que he encontrado o experimentado:
- Destrucción directa de una base de datos a otra (lo que estoy haciendo ahora)
- Mantener un archivo UPDATE.sql con sentencias de SQL que se ejecutan a través de un script o manualmente.
- Manteniendo un update.php archivo con un valor correspondiente de "db-schema-version" en la base de datos activa
La tercera opción parece ser la más sensata, pero aún existe la posibilidad de que una consulta SQL mal construida genere un error en la mitad de la secuencia de comandos, dejando a la base de datos en un estado medio actualizado, lo que requiere la restauración de una copia de seguridad.
Parece que no se trata de un problema, pero sucede, ya que como equipo, usamos phpMyAdmin, y parece que no puedo confiar en mí mismo. Recuerdo que copié la sentencia SQL ejecutada para pegarla en update.php. expediente. Una vez que navegas a otra página, tengo que volver a escribir la declaración SQL a mano, o revertir mi cambio y hacerlo de nuevo.
Supongo que lo que espero es una solución que no afecte nuestro flujo de trabajo de desarrollo establecido.