Drupalプロジェクトのソースファイルをバージョン管理するためにMercurialを使い始めました(私はVCSとMercurialの初心者の両方です)。ただし、データベースは、日付の付いた.sql.gzファイルのディレクトリを使用して「バージョン管理」されています。
必要なのは、リポジトリ内のどこかに単一のデータベースダンプファイルを作成することです。このファイルは、データベースが変更されると現在のダンプで上書きされ、別のバージョンにロールバックするときにデータベースにインポートされます。
私はそれを手動で行いました、そしてそれは働きました。しかし、私が本当に望んでいるのは、コミット/更新のたびに自動的にダンプ/ロードを行うものです。TortoiseHgのツールを使用するのが好きで、別のスクリプトを実行する気がないので、最初にデータベースをダンプしてからコミットするmakefileのような外部のものよりも、Mercurialにフックする方が本当に好きです。
mysql .... < dumpfile.sql
さて、フック上のようなものは、update
更新のたびにデータベースダンプをロードする簡単な方法のようです。しかし、自動ダンプはどうですか?
SVNのpre-commitフックについても同様の質問があり、受け入れられた答えは、おそらくそれは悪い考えであるというものでした。Mercurialに適用されますか?たぶん別のフック(prechangegroup
?)が機能するでしょうか?
編集:
私は自分のローカルマシンでそれを自分で使用していることを指摘する必要があります。シングルユーザーを超えて拡張することはできません。