現在、mercurial コミット フックを介して mysql データベース パッチを適用する方法を決定しようとしています。基本的に、検索パス内のスクリプトを指す着信コミット フックがあります。これはすべて機能します。私の本当の質問は、プルするたびに適用できる一連の mysql alter table ステートメントを保持するにはどうすればよいか (mercurial フックを受信)、再度実行してもエラーにはなりません。例えば:
テーブルに新しい列を追加します。したがって、altertables.sql に次のようなものを追加します。
ALTER TABLE `thecompany_tbl` ADD `firstLogin` INT NOT NULL DEFAULT '1';
自動化されたコミットフックを介してこれを初めて実行します。正常に動作します。次回プルすると、これをもう一度実行しようとすると、次のような結果が得られます。
#1060 - Duplicate column name 'firstLogin'
とにかくこのあたり?すべての変更を含むファイルを保持して、プルするたびに適用できれば素晴らしいと思います。アドバイスをありがとう!