2016-10-18 1 views
0

私のチームと私は現在Gitを使ってバージョンコントロールを管理しています。私たちはマイグレーションレスシステムにもこの機能を使用したいと思っていますが、問題はMySQLデータベースに埋め込まれた絶対URLの問題です。共有データベースを使用すると、私たちのローカル環境が破壊されます。もう1つの問題は、同一のテーブルに対して実行された変更ですが、まだ適切なテーブルがあるとは考えていません。マイグレーションレスシステムでデータベースを処理する方法は?

mysqldumpですべての絶対URLをsedに置き換えようとしましたが、これは非常に厄介です。私たちはもっと良い方法があるのだろうかと思っています。

私たちがこの質問をした最初の人であるとは思いません。しかし、私は絶対的に最悪の調査技能を持っているか、これに関して多くの情報がありません。

誰かが正しい方向に向いていますか?

ありがとうございます!

+0

私は「マイグレーションレスシステム」に遭遇したことはありません.Googleだけがこの問題を発見しました。あなたはどうですか?あなたの質問がここで答えられたら:http://stackoverflow.com/questions/115369/do-you-use-source-control-for-your-database-items閉じることを検討してください。 –

答えて

0

データベースのURLを更新するには、REPLACE機能を使用したUPDATEクエリを使用します。

UPDATE your_table SET url = REPLACE(url, 'http://example.com/', '/'); 

(あなたがこれを行う前にバックアップを作成することを忘れないでください。)


あるバージョンから別のバージョンのデータベースのスキーマをアップグレードするには、私は、単純なアップグレードスクリプトと少しスマートランチャーをお勧めします。ポイントは、各開発者が独自のデータベースを持ち、データベーススキーマを変更するときに、SQLスクリプトを使用してそれを実行することです。スクリプトはソースコードの変更と共にコミットされます。その後、別の開発者が新しいバージョンをフェッチすると、新しい移行スクリプトが実行され、データベースがアップグレードされます。

私は多くのプロジェクトでこのaproachを使った経験があります。私のChangelog.sqlツールを見てください。

関連する問題