2009-08-25 11 views
0

データベースを使用するWebアプリケーションを開発していて、重要なデータベースの変更が必要なバージョン管理システムにブランチを作成するとします。データベースの変更とVCSの分岐

通常のトランクデータベースを他のブランチと同じように使うことはできないとしましょう。この場合、実際にブランチのデータベースの新しいコピーが必要です。

ここで、データベースの別のコピーが必要な別のブランチがあるとします。私はちょうど2つの追加のデータベースのコピーを作成する必要がありますか?データベースを分岐する方法はありますか?あなたは何をしていますか?

私はMySQLを使用しています。 MySQLのインスタンスを1つだけ使用したいと思います。おそらく、私のDSNでこれを行うことができるMySQLのバージョンがありますか? Server = myServerAddress;データベース= myDataBase?バージョン= 123; Uid = myUsername; Pwd = myPassword;

私はフォワードのみの変更を行うことができますが、古いテーブルやフィールドを不要にしておきたいと思います。

答えて

1

私はこれを行うために考えることができるクリーンなソリューションはありません。私はちょうどmysqldump "トランク"データベースのルートを下り、 "branchA"データベースにロードします。

トランクからブランチバージョンへの移行に必要なCREATE、ALTERなどのコマンドセットを保持すると、データを新鮮に保つことができるという点で、トランクまたはライブのコピーに対してこれを実行できます新しいデータセットを必要とするたびにこのようにしてこのスクリプトをバージョン管理下に置くことは、ブランチをトランクにマージして展開する準備ができたら、実稼働環境でこれを行うことが本当に簡単だったことを意味します。

LVMスナップショット、仮想マシンスナップショットなどのルートを使ってデータベースデータやマシンの完全コピーを作成できますが、それはおそらく過度に複雑になると思います。