sql >> データベース >  >> RDS >> Sqlserver

SQLServerデータベースのバージョン管理

    Martin Fowlerは、このテーマに関する私のお気に入りの記事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にアップグレードするたびにこのスクリプトを実行します。

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



    1. EntityFrameworkと複数のスキーマ

    2. SQLでCASEステートメントを使用する方法を学ぶ

    3. バッチファイルを使用してSQLクエリのセットを実行しますか?

    4. その場でテーブルを作成するためのデータベース設計