5

サーバーを使用せずに、2台のローカルコンピューター間でデータベースを同期させる必要があります。いくつかの調査の後、Gitフックを使用してタスクを実行できると思いました。

私が基本的に望んでいるのは、リモートリポジトリとの間mysqldumpで実行git push(およびSQLファイルをコミットに追加)することmysqlimportです。git pull

このための特定のフックは見つかりませんでした。フックを試しましたpre-commitが、現在のコミットにSQLファイルが追加されませんでした。それから私は試しprepare-commitましたが、運がありませんでした。

誰かがこれに対する答えを持っていますか?

4

2 に答える 2

3

Ben Kulbertis によるこのソリューションでは、コミット前およびマージ後の git フックを使用してジョブを実行します。魔法のように動作します!

http://ben.kulbertis.org/2011/10/synchronizing-a-mysql-database-with-git-and-git-hooks/

于 2014-10-27T13:18:20.070 に答える
2

あなたのシステム用のラッパーを書きたいと思います。おそらく「commit.php」や「git-ci.sh」などです。次に、bash、perl、python、php、または使い慣れたものを使用して、各コマンドを 1 つずつ実行し、コミットで終了します。

pre-commit フックが実行されているコミットに追加しようとして同様の問題が発生した後、これをお勧めします。また、下流側には「プッシュ」フックや「プル」フックはありません (私は中央リポジトリを使用しているため、2 台のマシンが相互にプッシュおよびプルしているように見える場合に機能する可能性があります)。

長いプレコミット スクリプトがある Web サイトの 1 つに両面デプロイ スクリプトがありますが、Web サーバーにはこのようなラッパーがあり、フェッチしてからコミットを検査し、レポートを出力して、別のサーバーとのマージや rsync などに使用できます。おそらく重大なセキュリティ上の問題となる「プル」フックが置き換えられました。

ハンス

于 2011-09-02T09:57:45.067 に答える