SQL Server データベースのバージョン管理を行うにはどうすればいいですか? 質問する

SQL Server データベースのバージョン管理を行うにはどうすればいいですか? 質問する

データベースをバージョン管理下に置きたいです。

少なくとも何らかのデータはそこに保存しておきたいです(卒業生言及: ユーザー タイプと管理者)。また、パフォーマンス測定のために、生成されたテスト データの大規模なコレクションが必要になることもよくあります。

データベースにバージョン管理を適用するにはどうすればよいですか?

ベストアンサー1

マーティン・ファウラーは、このテーマに関して私のお気に入りの記事を書いています。出典: http://martinfowler.com/articles/evodb.html私は、運用データベースを簡単にアップグレードしたいため、alumbや他の人が提案しているように、スキーマ ダンプをバージョン管理下に置かないことにしました。

単一の運用データベース インスタンスを持つ Web アプリケーションの場合、次の 2 つの手法を使用します。

データベースアップグレードスクリプト

スキーマをバージョンNからN+1に移行するために必要なDDLを含むシーケンスデータベースアップグレードスクリプト。(これらはバージョン管理システムに含まれます。)次のような_version_history_テーブル

create table VersionHistory (
    Version int primary key,
    UpgradeStart datetime not null,
    UpgradeEnd datetime
    );

アップグレード スクリプトが実行されるたびに、新しいバージョンに対応する新しいエントリが取得されます。

これにより、データベース スキーマのどのバージョンが存在するかを簡単に確認でき、データベース アップグレード スクリプトが 1 回だけ実行されるようになります。繰り返しますが、これらはデータベース ダンプではありません。各スクリプトは、あるバージョンから次のバージョンに移行するために必要な変更を表します。これらは、運用データベースに適用して「アップグレード」するスクリプトです。

開発者サンドボックスの同期

  1. 運用データベースをバックアップ、サニタイズ、縮小するためのスクリプト。運用 DB へのアップグレードごとにこれを実行します。
  2. 開発者のワークステーションでバックアップを復元 (および必要に応じて調整) するスクリプト。各開発者は、運用 DB へのアップグレードのたびにこのスクリプトを実行します。

注意: 私の自動テストはスキーマが正しいが空のデータベースに対して実行されるため、このアドバイスは必ずしもお客様のニーズに完全には適合しません。

おすすめ記事