私はMercurialを使ってDrupalプロジェクトのソースファイルをバージョン管理し始めました(私はVCSとMercurial初心者です)。ただし、データベースは、日付が付いた.sql.gzファイルのディレクトリを使用して、まだ "バージョン管理"されています。Mercurialフックを使ってバージョン管理用のデータベースダンプを作成/ロード
私が望むのは、データベースの変更時に現在のダンプで上書きされ、別のバージョンにロールバックするときにデータベースにインポートされる、自分のリポジトリ内のどこかに単一のデータベースダンプファイルがあることです。
私は手動で行いました。しかし、私が本当に好きなのは、コミット/アップデートごとにダンピング/ロードを自動的に行うものです。 TortoiseHgのツールで作業するのが好きなので、最初にデータベースをダンプしてからコミットするmakefileのような外部のものよりも、Mercurialのほうが好きです。別のスクリプトを実行する気がしません。
フックにmysql .... < dumpfile.sql
のようなものがあると、アップデート後にデータベースダンプをロードする簡単な方法になります。しかし、自動ダンピングはどうですか?
SVNのプリコミットフックについてsimilar questionがありました。これはおそらく悪い考えです。それはMercurialにも適用されますか?多分別のフック(prechangegroup
?)が動作するでしょうか?
EDIT:
私は、私は私のローカルマシン上で、自分でそれを使用していることを指摘しなければなりません。単一のユーザーを超えて拡張するべきではありません。
素晴らしい!これはhgを使ってうまく動作します。しかし、もし私がtortoisehgを使用すると、私は2度コミットする必要があります(ソースファイル用に1回、新たに作成されたデータベースダンプ用に1回)...それを回避する方法を知っていますか? –
THGは、ファイルが変更されたと思われるファイルに制限することを意味します。私はそれを回避するために十分にTHGを知らない(多分THGのメーリングリストで尋ねる)。とにかくありがとう。 – tonfa
ほとんどの場合、私はコミットのためにコマンドラインを使うことができます。そう悪くはない。 –