2012-05-08 16 views
1

これに対する統合ソリューションはありますか?Subversionを使用したMySQLのバージョン管理

大きな変更を行うたびにmysqlとdump sqlというフォルダを作成しても問題ありませんか?

Subversionは完璧ですが、db部分はどうやって処理しますか?誰かが自分のワークフローを説明できますか?

ありがとうございます!あなたはスコット・アンブラーとThoughtWorksのアジャイルデータベースについて何をしたかについて読み、あなたが何を考えて見たいかもしれません

+0

「mysql versioning」とはどういう意味ですか? – ryanprayogo

+1

バージョン管理下で何を入れたいですか?データまたは[DDL](http://en.wikipedia.org/wiki/Data_Definition_Language)?最初のケースでは、SVNを使用するよりはるかに効率的なデータバックアップのソリューションがたくさんあります。後者の場合は、定期的にDDLを生成してバージョン管理下に置いてください。 –

答えて

2

単純なバッチファイルを使用して、DBへの変更をエクスポート/インポートしています。以下のファイルと だけで作成された追加のフォルダ_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

のRuby on Railsは、データベースに変更を追跡するためにmigrationsと呼ばれる技術を使用していますスキーマdevelopment_structure.sqlという名前のファイルが自動的に作成されます(存在しない場合はrake db:structure:dumpを呼び出すなどして作成できます)。大きな変更を加えるたびにSVNでこのファイルを提出またはチェックインすると、データベースの変更がSVNに保存されます。

CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `login` varchar(255) NOT NULL, 
    `email` varchar(255) DEFAULT NULL, 
    .. 
) 
関連する問題