Este es el proceso que utilizo para el control de versiones base de datos MySQL s bajo Subversion.
Configuración SVN
En SVN crear una carpeta Databases
con una sub-carpeta para cada base de datos que desea añadir a SVN.
Agregar tabla db_version a bases de datos
tendremos que añadir una tabla a cada base de datos para asegurarse de que la versión de la base de datos que actualmente estamos trabajando con. Esta tabla también servirá como un registro para rastrear qué cambios de esquema se han realizado en la base de datos.
create table db_version (
`id` int auto_increment,
`majorReleaseNumber` int,
`minorReleaseNumber` int,
`pointReleaseNumber` int,
`scriptName` varchar(50),
`dateApplied` datetime,
PRIMARY KEY(`id`)
);
majorReleaseNumber - Las liberaciones mayores son cambios significativos en la base de datos.
minorReleaseNumber - Las versiones menores son mejoras en la base de datos que no requieren una versión principal.
pointReleaseNumber - Una versión de punto suele ser una solución de error simple.
scriptName - El nombre del script sql que hizo que el esquema cambie.
dateApplied - Cuando el script se ejecutó en esta base de datos.
crear secuencias de comandos de línea de base
que utilizan mysqldump para generar una secuencia de comandos para crear las bases de datos existentes. Asegúrese de incluir la opción --no-data. SVN se utiliza para realizar un seguimiento de las secuencias de comandos que realizan cambios de esquema en la base de datos y no está destinado a ser utilizado como herramienta de copia de seguridad para los datos de una instancia particular de la aplicación.
$ mysqldump -h localhost -u root -p db_1 --no-data > db_1.1.0.0.sql
El nombre de la secuencia de comandos SQL debe contener el nombre de la base de datos y la versión de la base de datos de la secuencia de comandos se aplica.
db_1.1.0.0.sql
Al final de la secuencia de comandos que asegúrese de añadir una instrucción de inserción para la tabla db_version.
Cambio de esquema de base de
Cuando se tiene una mayor, menor o cambio punto de desenganche a la base de datos, la secuencia de comandos de cambio debe ser probado y luego se suben a la carpeta de base de datos en el SVN. Es una buena idea realizar una copia de seguridad de la base de datos antes de aplicar un script de cambio. Al final del script de cambio debe ser una instrucción de inserción para la tabla db_version.
Un enfoque alternativo sería usar la opción '--tab' en' mysqldump'. Esto crea un archivo ' .sql' para el esquema y un archivo' .txt' delimitado por tabulaciones para los datos. El esquema se restaura a través de 'mysql' como de costumbre, los datos se restauran a través de' mysqlimport'. http://dev.mysql.com/doc/refman/5.1/en/mysqldump-delimited-text.html –
rinogo