Pregunta

Trabajamos con Phing's tarea dbdeploy que hacer control de versiones De nuestras bases de datos PostgreSQL, que en total es una buena forma de trabajar. Realmente no tengo muchos problemas con las versiones de la base de datos después de que comenzamos a trabajar con ella, aparte de una duda persistente: ¿cómo controlamos los datos que contiene la base de datos?

En este momento, generalmente tengo un delta que contiene algunos datos de ejemplo, que se utilizan para las pruebas, pero en un entorno de producción, quiero tener datos de producción, como en datos válidos reales. Por supuesto, podría escribir otro delta que trunce los datos de prueba e insertar los datos reales, pero de alguna manera se siente torpe y engorroso, ya que el único lenguaje en un delta es SQL. Al escribir un delta de este tipo, manejar secuencias y asegurarse de que las relaciones clave extranjeras sean correctas, es un verdadero dolor.

Así que pensé que podría tener sentido escribir un script PHP que importe datos de, por ejemplo, un archivo CSV. Eso realmente funcionaría, hasta que haya otro cambio de base de datos que renombre una columna, lo que haría que el archivo PHP sea inútil. Por supuesto, eso se soluciona fácilmente actualizando el script para incorporar los cambios en la base de datos y volver a ejecutar el script, pero eso es propenso a errores, lo que es la razón por la que comencé a usar DBDePloy en primer lugar.

Entonces, mi pregunta es; ¿Cómo maneja los datos mientras se implementa cambios, o con mayor precisión: cómo se inserta los datos que necesita el entorno de producción?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top