2012-05-08 5 views
1

Есть ли какое-либо интегрированное решение для этого?MySQL версии с Subversion

Будет ли он работать, если я создам папку с именем mysql и dump sql там каждый раз, когда выполняю основные изменения?

Subversion совершенен, но как вы относитесь к части db? Может кто-нибудь объяснить их рабочий процесс.

Спасибо!

+0

Что вы подразумеваете под «mysql версией»? – ryanprayogo

+1

Что вы хотите поставить под контроль версий? Данные или [DDL] (http://en.wikipedia.org/wiki/Data_Definition_Language)? В первом случае существует множество решений для резервного копирования данных, которые будут намного эффективнее, чем использование SVN. В более позднем случае просто создайте периодически DDL и поставьте его под контроль версий. –

ответ

2

Я использую простые командные файлы, экспортировать/импортировать любые изменения в/из БД. Так же была создана дополнительная папка _db со следующими файлами:

import.bat:

if exist c:\mysql\bin\mysql.exe goto work1 

exit 

:work1 
C:\mysql\bin\mysql.exe -u root --default-character-set=utf8<C:\project\_db\dbName_dc.sql 
C:\mysql\bin\mysql.exe -u root -D dbName --default-character-set=utf8<C:\project\_db\dbName.sql 
pause 
exit 

export.bat

if exist c:\mysql\bin\mysql.exe goto work1 

exit 

:work1 
C:\mysql\bin\mysqldump.exe -u root --default-character-set=utf8 dbName>C:\project\_db\dbName.sql 
C:\mysql\bin\mysqldump.exe -u root -d --default-character-set=utf8 dbName>C:\project\_db\dbName_struct.sql 
pause 
exit 

dbName_dc.sql

/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 
DROP DATABASE IF EXISTS `dbName`; 
CREATE DATABASE `dbName`; 
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */; 

Это не проблема пишите похожие файлы для unix-подобных систем.

1

Рубин на Rails использует технику, называемую migrations, чтобы отслеживать изменения в базе данных схемы. Он автоматически создает файл с именем development_structure.sql (если его нет, вы можете его создать, например, путем вызова rake db: structure: dump). Если вы отправляете или проверяете этот файл в SVN каждый раз, когда вы вносите существенные изменения, вы бы сохранили изменения в базе данных в SVN. Он содержит CREATE TABLE команды, как следующее:

CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `login` varchar(255) NOT NULL, 
    `email` varchar(255) DEFAULT NULL, 
    .. 
)