OS: Ubuntu 12.04
サーバーに drupal 展開 (ライブ Web サイト) とステージング環境 (テスト Web サイト) があります。ここで指示されているように、ステージングWeb サイトから変更をプルするたびに、データベースを自動的に同期したいと考えています。-フック/
私が使用するセットアップはまったく同じです(もちろん、私のセットアップに従った設定とパスがあります)。
ウェブサイトからの引用:
事前コミットから始めましょう。pre-commit フックは、コミットが実行される直前にスクリプトを実行します。pre-commit フックを編集するには:
[your editor] /path/to/your/repo/.git/hooks/pre-commit
それでは、プリコミットスクリプトを書きましょう。MySQL データベースを git リポジトリにダンプし、追加してコミットするようにシステムに指示します。
#!/bin/sh mysqldump -u [mysql user] -p[mysql password] --skip-extended-insert [database] > /path/to> /your/repo/[database].sql cd /path/to/your/repo git add [database].sql
それでは、マージ後のスクリプトを書きましょう。最新の変更のために、MySQL ダンプをローカル データベースに復元するようにシステムに指示します。マージ後のフックを次のように編集します。
[your editor] /path/to/your/repo/.git/hooks/post-merge
そして書く:
#!/bin/sh mysql -u [mysql user] -p[mysql password] [database] < /path/to/your/repo/[database].sql
しかし、コミットしてからプルすると、何も起こらないようです。マージ後フックとコミット前フックは、コミットとプルを実行するデプロイメント リポジトリのフック ディレクトリにあります。どちらにも実行権があります。chmod +x /path/to/hook
フックに配置したコマンドをテストしました。それらは正しく動作するはずです。
何が問題なのかをデバッグする方法はありますか?