データベースを作成するためにソースファイルを使用するという点で、私は少し古い学校です。実際には2つのファイル(project-database.sqlとproject-updates.sql)があり、1つ目はスキーマと永続データ用、2つ目は変更用です。もちろん、どちらもソース管理下にあります。
データベースが変更されると、最初にproject-database.sqlのメインスキーマを更新し、次に、ALTER TABLEステートメントなどの関連情報をproject-updates.sqlにコピーします。次に、更新を開発データベースに適用し、テストを行い、うまくいくまで繰り返します。次に、ファイルをチェックインし、もう一度テストして、本番環境に適用します。
また、私は通常db-Config-のようなテーブルを持っています:
SQL
CREATE TABLE Config
(
cfg_tag VARCHAR(50),
cfg_value VARCHAR(100)
);
INSERT INTO Config(cfg_tag, cfg_value) VALUES
( 'db_version', '$Revision: $'),
( 'db_revision', '$Revision: $');
次に、更新セクションに以下を追加します。
UPDATE Config SET cfg_value='$Revision: $' WHERE cfg_tag='db_revision';
db_version
唯一のデータベースが再作成されたときに変更されます、そしてdb_revision
私のDBは、ベースラインから外れどれだけ離れているかの表示を提供します。
更新を個別のファイルに保存することもできましたが、すべてをまとめてマッシュし、切り取りと貼り付けを使用して関連するセクションを抽出しました。もう少しハウスキーピングが必要です。つまり、「:」を$ Revision 1.1 $から削除してフリーズします。