Si. Debería poder reconstruir cualquier parte de su sistema a partir del control de origen, incluida la base de datos (y también argumentaría ciertos datos estáticos).
Suponiendo que no desea tener una herramienta para hacerlo, le sugiero que desee incluir lo siguiente:
- Scripts de creación para las estructuras básicas de la tabla, incluidos esquemas, usuarios, tablas, claves, valores predeterminados, etc.
- Scripts de actualización (ya sea alterando la estructura de la tabla o migrando datos de un esquema anterior al nuevo esquema)
- Scripts de creación para procedimientos almacenados, índices, vistas, activadores (no necesita preocuparse por la actualización de estos, ya que simplemente sobrescribe lo que estaba allí con el script de creación correcto)
- Scripts de creación de datos para que el sistema funcione (un solo usuario, cualquier dato de lista de selección estática, ese tipo de cosas)
Todos los scripts deben incluir las declaraciones de caída apropiadas y deben escribirse para que puedan ejecutarse como cualquier usuario (incluidos los prefijos de esquema / propietario asociados, si corresponde).
El proceso para actualizar / etiquetar / bifurcar debe ser exactamente como el resto del código fuente: no tiene mucho sentido hacerlo si no puede asociar una versión de base de datos con una versión de aplicación.
Por cierto, cuando dices que la gente puede actualizar el servidor de prueba, espero que te refieras al servidor de desarrollo. Si los desarrolladores están actualizando el servidor de prueba sobre la marcha, entonces estás viendo un mundo de dolor cuando se trata de resolver lo que necesitas liberar.