2

開発者の小さなチームがMySQLデータベースの更新/変更スクリプトを共有できるようにする標準またはオープンソースのアプリケーションがあるかどうか知りたいですか?

現在、すべての開発者はデータベースの独自のインスタンスを持つVMを持っているため、競合は発生せず、それぞれが個別の開発環境を持つことができます。DBを変更するときは、SQLスクリプトをSVNのSQLテキストファイルに追加します。このファイルは、必要に応じて、各開発者がそれぞれの環境で実行します。

私たちが抱えている問題は、誰かがファイルを更新すると、他の人がスクリプトを実行してから、追加の変更を追加することです。非常に混乱し、ALTERテーブルステートメントなどがあるとエラーが発生します。

1つの開発者が自分のDBを破棄した場合、他の開発者に影響を与えたくないため、DBレプリケーションを使用したくありません。

私たちはExpressionEngineを使用していますが、SQLの更新をチェック/検証するためにPHPを使用していることに気づきましたが、それは私たちが進むべき方向ですか?

他の誰かがこの問題に対処しますか?もしそうなら、あなたは何を使うことになったのですか?

4

2 に答える 2

0

おそらく、あなたが望むのは移行サポートです。

次に、使用するCVSに移行コードを配置し、各チーム メンバーが各自のボックスで移行(つまり、移行スクリプトを実行) すると、すべてのデータベースが同期されます。

私が使用しているフレームワーク ( yii ) はそれをサポートしていますが、フレームワーク全体を持ち込む必要がない場合は、いくつかのスタンドアロン ソリューションがあると確信しています。

于 2012-10-13T05:21:38.223 に答える
0

かなり単純な解決策は、単一のファイルではなく、ディレクトリを持つことです。次に、開発者が変更を加えるたびに、ディレクトリに「パッチ ファイル」を追加します。他の開発者は、まだ実行していないパッチを実行することで、データベースを最新の状態にすることができます。

これは、データベースにメタデータ テーブルを作成して、実行されたパッチを追跡し、実行されていないパッチを実行するスクリプトを作成することで自動化することもできます。

Lorna Mitchell は、これを行うためのいくつかの戦略についてブログに書いています。

http://www.lornajane.net/posts/2010/simple-database-patching-strategy

http://www.lornajane.net/posts/2012/take-on-a-database-change-process

コメントがいっぱいであるか、プロセスを支援するさまざまなツールを推奨している人々です。個人的には、かなり単純なスクリプトしかなく、より大きなライブラリは必要ありませんが、マイレージは異なる場合があります。

于 2012-10-13T05:32:57.843 に答える