La mejor forma de gestionar los cambios en la database

¿Cuál es la mejor forma de administrar los cambios en la database? Necesito tener soluciones independientemente del idioma del cliente de la database. También me gustaría poder utilizar características específicas de la database en esos cambios, como procedimientos almacenados, triggers, etc.

En primer lugar, asegúrese de tener toda la database generada con script para que pueda rebuild la database si es necesario.

Cada cambio debe escribirse como un script de actualización. De esta forma, puede ejecutar cada cambio individualmente contra sus bases de datos.

Una vez que el cambio se ha comprometido con la base de código, combine la secuencia de commands de cambio con el process de compilation para que suceda automáticamente … y luego archive la secuencia de commands de cambio en caso de que surja alguna pregunta.

Antes que nada, coloque todos los cambios de la database en scripts y colóquelos en el sistema de control de origen.

A continuación, elimine todos los permissions de producción que tengan los desarrolladores. Exactamente dos personas deben tener derechos de producción en una tienda pequeña a mediana, el dba designado y su suplente designado. Una vez que los desarrolladores no pueden realizar cambios en el producto, le resultará más fácil conseguir que realmente escriban y usen scripts.

Nunca ejecute un script en prod que no se haya cargado primero en QA o en etapas. Si hay problemas con el script, se debe encontrar en este punto.

Use scripts de cambio idempotentes (y tal vez eche un vistazo a LiquiBase o dbdeploy ).

No estoy seguro de lo que está preguntando aquí, pero si es una buena manera de administrar los cambios de esquema y mantenerlos sincronizados entre las versiones y las implementaciones, es difícil equivocarse con Visual Studio Database Edition. Su único propósito en la vida es administrar los cambios en el esquema de la database, validar el esquema, generar y generar scripts de implementación. Si tiene Visual Studio Developer Edition o Visual Studio Team Suite, puede getlo de forma gratuita.

Bueno, actualmente estamos usando el cinturón de herramientas de Redgate que contiene una comparación de bases de datos, una comparación de datos, etc.

También puede usar cualquier control de fuente para rastrear los cambios en los objects de su database.

En mi caso, construyo un script SH para este trabajo:

https://github.com/networkinguardo7/db-version-updater

Y una secuencia de commands MySQL:

https://github.com/networkinguardo7/db-version-updater-mysql