継続的インテグレーション-データベース

継続的なデータベース統合は、プロジェクトのバージョン管理リポジトリに変更が適用されるたびに、データベースとテストデータを再構築するプロセスです。

データベース統合では、通常、データベース統合に関連するすべてのアーティファクト-

  • バージョン管理システムに常駐する必要があります。
  • 厳密さをテストし、ポリシーへの準拠を検査できます。
  • ビルドスクリプトを使用して生成できます。

継続的なデータベース統合に関与できるアクティビティは、次のいずれかになります。

Drop a Database −データベースを削除し、関連するデータを削除して、同じ名前で新しいデータベースを作成できるようにします。

Create a new Database −データ定義言語(DDL)を使用して新しいデータベースを作成します。

Insert the Initial Data −配信時にシステムに含まれると予想される初期データ(ルックアップテーブルなど)を挿入します。

Migrate Database and Data −データベーススキーマとデータを定期的に移行します(既存のデータベースに基づいてシステムを作成している場合)。

Modify Column Attributes −要件とリファクタリングに基づいて、テーブルの列の属性と制約を変更します。

Modify Test Data −複数の環境で必要に応じてテストデータを変更します。

したがって、Continuous Databaseの例では、次の手順を実行します。

  • MS SQLServerデータベースと対応するテーブルを作成します。

  • SQL Server ManagementStudioからスクリプトを作成します。このデータベーススクリプトは、データベースにテーブルを設定するために使用されます。

  • このデータベースにアクセスするためのコードをASP.Netプロジェクトに記述します。

  • このスクリプトを実行するために、TeamCityのプロジェクトにステップを作成します。

  • スクリプトをGitにチェックインします。

前のセクションで作成したAWSデータベースでこれを行う手順。

Step 1− MS SQLServerデータベースと対応するテーブルを作成します。SQL Server Management Studioを開いて、簡単なデータベースとテーブルを作成しましょう。データベースを右クリックして、New Database

Step 2 −名前を付けます Demodb [OK]をクリックします

Step 3 −新しいデータベースで、右クリックして新しいテーブルを作成します。

Step 4 −必要な列をテーブルに追加できます。

Step 5 −テーブルを保存し、名前を付けます Demotb

Step 6 −テーブルを右クリックして、メニューオプションを選択します Script Table as → Drop and Create to → File

Step 7 −ファイルをデモプロジェクトフォルダに次のように保存します Sample.sql

これは、データベーススクリプトがどのように見えるかです。存在する場合は最初に既存のテーブルを削除してから、テーブルを再作成します。

USE [Demodb]
GO

/****** Object: Table [dbo].[Demotb] Script Date: 3/22/2016 7:03:25 AM

******

DROP TABLE [dbo].[Demotb]
GO

/****** Object: Table [dbo].[Demotb] Script Date: 3/22/2016 7:03:25 AM

******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Demotb](
   [TutorialName] [nvarchar](max) NULL,
   [TutorialID] [smallint] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

Step 8 −では、すぐに変更しましょう ASP.Net code 新しいデータベースを参照します。

Step 9 −で Tutorial.cs あなたのファイル Demo project、次のコード行を追加します。これらのコード行はデータベースに接続し、サーバーのバージョンを取得して、バージョン名をName変数に格納します。このName変数をDemo.aspx.cs を介してファイル Response.write コマンド。

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace Simple {
   public class Tutorial {
      public String Name;
      
      public Tutorial() {
         string connectionString = "Data Source = WIN-50GP30FGO75;
         Initial Catalog = Demodb;
         Integrated Security = true;";
         
         using (SqlConnection connection = new SqlConnection()) {
            connection.ConnectionString = connectionString;
            connection.Open();
            Name = connection.ServerVersion;
            connection.Close();
         }
      }
   }
}

Step 10 −次のコードをに追加します Demo.aspx.cs ファイルにSQLServerのバージョンが表示されていることを確認します。

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Simple {
   public partial class Demo : System.Web.UI.Page {
      Tutorial tp = new Tutorial();
      
      protected void Page_Load(object sender, EventArgs e){
         Response.Write(tp.Name);
      }
   }
}

コードを実行すると、ブラウザに次の出力が表示されます。

Step 11−次に、データベーススクリプトを呼び出すTeamCityにステップを追加しましょう。プロジェクトダッシュボードに移動し、をクリックしますEdit Configuration Settings

Step 12 −ビルドステップに移動し、をクリックします Add build step

次のオプションを選択します(MS SQL ServerクライアントはCIサーバーにインストールする必要があることに注意してください)。

  • ランナータイプはコマンドラインである必要があります。

  • オプションのステップ名を付けます。

  • 実行はパラメータを使用して実行可能である必要があります。

  • コマンド実行可能ファイルは C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe

  • コマンドパラメータは次のようになります -S WIN-50GP30FGO75 -i Sample.sql。ここで、–SはSQLServerインスタンスの名前を示します。

Step 13 − [保存]をクリックします。

ここで確認する必要があるのは、ビルドの順序です。ビルド順序が次のとおりであることを確認する必要があります。

Step 14 −ビルドステップを並べ替えるオプションを選択して、ビルド順序を変更できます。

  • データベースのセットアップを最初に行う必要があります–したがって、これを使用してデータベースを新しいものから再作成します。

  • 次は、アプリケーションのビルドです。

  • 最後に、テストのセットアップ。

Step 15 −次に、 git add そして git commit コマンドが Sample.sqlファイルはGitにチェックインされます。これにより、ビルドが自動的にトリガーされます。そして、このビルドは合格するはずです。

これで、サイクル内にも継続的なデータベース統合の側面を備えた本格的なビルドサイクルができました。次のセクションでは、これをさらに進めて、継続的デプロイについて見ていきましょう。

ローカルSQLServerでこれを行ったので、同じ手順を繰り返します。 AWS MS SQL前のセクションの1つで作成されたサーバー。Microsoft SQL Serverに接続するには、次の規則で接続する必要があります。

Step 16−まず、AWSでデータベースインスタンスに割り当てられている名前を確認します。AWSにログインするときは、データベースセクションの下のRDSセクションに移動します。

Step 17 −表示される次の画面で[DBインスタンス]をクリックします。

step 18−データベースをクリックして、エンドポイントをメモします。次のスクリーンショットでは、demodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com:1433

Step 19 −データベースに接続する SQL Server Management Studio、接続を次のように指定する必要があります demodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com,1433 (インスタンス名とポート番号の間に使用されるコンマに注意してください)。

次のスクリーンショットは、データベースへの正常な接続を示しています。

次に、同じ手順をすべて繰り返すことができます。ザ・Sqlcmd command 次のようになります-

これと同じコマンドは、TeamCityのデータベースビルドステップで置き換えることができます。あなたが実行するときsqlcmd command、テーブルはAWSのSQLServerデータベースに自動的に作成されます。