継続的インテグレーション-データベース
継続的なデータベース統合は、プロジェクトのバージョン管理リポジトリに変更が適用されるたびに、データベースとテストデータを再構築するプロセスです。
データベース統合では、通常、データベース統合に関連するすべてのアーティファクト-
- バージョン管理システムに常駐する必要があります。
- 厳密さをテストし、ポリシーへの準拠を検査できます。
- ビルドスクリプトを使用して生成できます。
継続的なデータベース統合に関与できるアクティビティは、次のいずれかになります。
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データベースに自動的に作成されます。