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

作業フォルダを使用したソース管理データベース

    この記事は、SQLServerデータベースを管理するためのソース管理の作業フォルダーオプションの使用方法のウォークスルーです。

    この記事では、ソース管理で使用できる他の利用可能なオプションと比較して、作業フォルダーを使用することの利点と制限のいくつかについても強調します。

    この記事の技術的な詳細を掘り下げる前に、いくつかの重要な概念について説明しましょう。

    重要な概念

    ソース管理とは

    ソース管理は、開発者によって行われたコードのすべての変更を追跡するシステムまたは(ソフトウェアのベストプラクティスの一部)プラクティスです。

    ソース管理が必要な理由

    開発者が作成したアプリケーションコードは、開発者が行ったすべての変更を追跡できるだけでなく、必要に応じて元に戻すことができるように、時々保存する必要があります。

    このため、アプリケーションコードはソース管理下に置かれ、コメントとともにすべての変更の履歴が適切に保持されるようにします。さらに、ソース管理を使用することには、この記事の範囲を超える多くの利点があります。

    ソース管理とバージョン管理

    ソース管理とバージョン管理の間に違いはなく、ほとんどの場合、これら2つの用語は自由に交換可能に使用されます。

    データベースをソース管理下に置きますか

    アプリケーションコードと同様に、テーブル、ビュー、ストアドプロシージャなどのデータベースオブジェクトもバージョン管理する必要があります。ただし、データベースオブジェクトをソース管理下に置く方法は、アプリケーションコードをソース管理下に置く場合とは少し異なり、場合によってはまったく異なります。

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

    ビジネス要件に従って「Cars」というサンプルデータベースを作成するとします。

    次に、 CarIdを使用して「Car」というテーブルを作成します。 およびCarName 別の要件を満たすための列。

    不在の場合、別の開発者に CarTypeを追加するタスクが割り当てられます 「車」テーブルの列。

    彼はCarNameを削除することにしました 不要だと考えてCarTypeに置き換えてください 列。

    久しぶりに戻ってきて、車名を見てびっくりしました 列が欠落しているだけでなく、 CarTypeに置き換えられています 列。

    これで、 CarNameに選択した元のデータ型と長さを覚えていません。 一連のビジネス要件をすべて通過しない限り。

    ちょっと待って!そもそもデータベースにソース管理を使用することを検討していれば、この問題は簡単に解決できます。そうすれば、列の定義を含む最初の変更と、別の開発者による2番目の変更を簡単に確認できます。

    したがって、あなたと他の開発者は一緒に座って、データベース上の開発者によって行われたすべての変更を追跡するソース管理を使用して、データベース(オブジェクト)に加えられた履歴変更を実行します。

    これは次のように示されています:

    ソース管理の最も重要な使用法

    ソース管理を使用する主な理由の1つは、コードの次のブランチを作成することにより、コードの複数のバージョンを同時に維持できるようにすることです。

    1. Dev(開発ブランチ)
    2. テスト(テストブランチ)
    3. QA(QAブランチ)
    4. 製品(生産部門)

    ソース管理から開発、テスト、QA、本番ブランチを作成する技術的な詳細は、この記事の範囲を超えています。

    前提条件

    この記事は、次の要件を満たす読者に最適です。

    T-SQLの基本的な知識

    テーブル、ビュー、ストアドプロシージャなどのデータベースオブジェクトを作成、クエリ、変更するには、T-SQLの基本的な知識が必要です。

    データベース開発ツール

    データベースとそのオブジェクトを作成および管理するには、SSMS(SQL Server Management Studio)またはdbForge Studio forSQLServerがマシンにインストールされている必要があります。

    作業フォルダのデータソースの可用性

    作業フォルダオプションを提供するソース管理は問題ありませんが、この記事のウォークスルーのすべての手順に従うには、dbForgeソース管理を使用することをお勧めします。

    作業フォルダのソース管理

    バージョン管理データベースオブジェクトの機能が制限されているワーキングフォルダーは、TFS、Gitなどの他のソース管理システムと同じように使用できます。

    作業フォルダには、データベースオブジェクトの作成と管理に使用されるSQLスクリプトファイルが含まれているだけです。

    作業フォルダを使用する場合

    データベースとその関連オブジェクトを最初から作成したいが、チームが最終的にどのソース管理を使用するのかまだわからないとします。次に、作業フォルダのソース管理オプションから始めることをお勧めします。

    もう1つの理由は、データベースの現在の状態を保存したいだけで、履歴の変更を追跡したくない場合は、作業フォルダーをソース管理として使用することをお勧めします。

    作業フォルダの制限

    作業フォルダからバージョン管理データベースオブジェクトは、データベースとそのオブジェクトの最新バージョンを保持するという点で制限されており、変更をさかのぼったり、元に戻したりする方法はありません。

    したがって、データベースとそのオブジェクトに時々加えられたすべての変更を表示できないため、ソース管理オプションとして作業フォルダを使用する場合は注意が必要です。

    ウォークスルー:データベースを作業フォルダにリンクする

    ソース管理を使用してデータベースを作業フォルダーにリンクする手順を見ていきましょう。

    BookとBookTypeを追加するための要件

    次の2つのテーブルを含む「SQLBookShopV2」というテストデータベースを作成するための内部要件を受け取りました。

    1. 予約
    2. BookType

    この時点でデータベースは必ずしもソース管理を必要とせず、行われたすべての変更を追跡することは重要ではありません。

    要件を確認する

    作業フォルダを使用する前に、要件を再確認することをお勧めします。次の要件を持つデータベースを作成するように求められた場合は、作業フォルダーが最適です。

    1. テストデータベースまたはデータベースプロトタイプが必要です
    2. データベースの変更履歴は必須ではありません
    3. 最終的にどのソース管理を使用するかはまだ決定されていません

    作業フォルダの設定

    最初のステップは、データベースコードを作業フォルダーにチェックインし始めた後、テストデータベーススクリプトが存在するフォルダーを確保することです。

    Cドライブの下に「SQLBookShopV2Scripts」という名前の新しいフォルダを作成します。

    SQLBookShopV2サンプルデータベースのセットアップ

    dbForge Studio for SQL Serverを開き、[データベース]メニューから[新しいデータベース]をクリックします。

    データベースの名前に「SQLBookShopV2」と入力し、ウィンドウの下部にある[変更の適用]ボタンをクリックします。

    データベースを作業フォルダにリンクする

    データベースを作成した直後に、データベースをソース管理にリンクすることをお勧めします。

    データベース(SQLBookShopV2)を右クリックし、[ソース管理]→[データベースをソース管理にリンク]メニュー項目を選択します。

    以前に作成した作業フォルダーを見つけて、データベースにリンクします。

    希望するデータベース開発モデルを選択できます。共有データベース開発モデルを選択しています:

    データベースの横にある小さなソース管理アイコンをチェックして、データベースが作業フォルダーのソース管理に正常にリンクされていることを確認します。

    ブックテーブルの作成

    テーブルを右クリックします 次に、新しいテーブルをクリックします 次のコードを使用してブックテーブルを作成し、変更を適用します。

    CREATE TABLE SQLBookShopV2.dbo.Book (
      BookId INT IDENTITY
     ,BookTitle VARCHAR(50) NOT NULL
     ,Notes VARCHAR(200)
     ,CONSTRAINT PK_Book_BookId PRIMARY KEY CLUSTERED (BookId)
    )
    GO
    

    データベースコードの変更をコミットする

    データベースに新しいテーブルを作成したため、これらのローカルの変更をソース管理で取得して保存する必要があります。

    データベースを右クリックし、[ソース]をクリックして、ソース管理マネージャー(保存する最新の変更を表示)を開きます。 àソース管理マネージャーを表示

    コミットをクリックします 作業フォルダのソース管理にチェックインするには:

    作業フォルダの確認

    作業フォルダーに移動し、最新のコミットの結果としてそこに保存されたテーブルオブジェクトを確認します。

    BookTypeテーブルの作成

    次のコードを使用して、別のテーブルBookTypeを作成します。

    CREATE TABLE SQLBookShopV2.dbo.BooKType (
      BookTypeId INT IDENTITY
     ,Name VARCHAR(50) NULL
     ,Detail VARCHAR(200) NULL
     ,CONSTRAINT PK_BooKType_BookTypeId PRIMARY KEY CLUSTERED (BookTypeId)
    )
    GO
    

    ソース管理にテーブルを追加

    前述と同じ方法を使用して、新しく作成したテーブルをソース管理に追加し、作業フォルダーをチェックして、両方のテーブルが存在することを確認します。

    おめでとう!これで、データベースが作業フォルダーのソース管理に正常にリンクされました。

    作業フォルダに関する注意事項

    ソース管理は通常のWindowsフォルダーと同じであり、外部で変更されると、最新の状態を思い出せなくなるため、純粋な形式の作業フォルダーを覚えておいてください。

    たとえば、Book.sqlコードを作業フォルダーから削除し、Source Control Managerを使用して変更を確認した場合、Bookテーブルコードを作業フォルダーに再度追加する必要があります。

    作業フォルダを保護する責任は、成功したことが証明されている回避策に厳密に従わない限り、ソースコード(元の形式)ではなく開発者の肩にかかっています。

    やるべきこと

    作業フォルダのソース管理オプションを使用して、データベースオブジェクトを簡単に配置できるようになりました:

    1. をリンクして別のデータベースを作成してみてください BookTypeのテーブル BookTypeId BookTypeの主キー テーブルはBookTypeIdとして渡されます の外部キー列 作業フォルダのソース管理を使用した後のテーブル。
    2. AddBookというストアドプロシージャを作成してみてください に新しい本を追加するには データベースを作業フォルダのソース管理にリンクした後のテーブル。
    3. データベースビューを作成してみてください すべての書籍とその種類のリストを確認し、WorkingFolderソース管理へのすべての変更を確認します。

    さらに読む:

    作業フォルダのソース管理を使用したデータベースの変更の追跡

    便利なツール:

    dbForgeソース管理–ソース管理でSQLServerデータベースの変更を管理するための強力なSSMSアドイン。


    1. SQL Server(T-SQL)でサーバーの現在のタイムゾーンを取得する

    2. SQLServerの命名規則または命名規則に従ってすべてのデフォルト制約の名前を変更する方法-SQLServer/TSQLチュートリアルパート93

    3. SQLServerマスターデータベースの復元

    4. SQLite INSERT-ON DUPLICATE KEY UPDATE(UPSERT)