データベースを継続的統合プロセスに組み込むにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1361010

  •  20-09-2019
  •  | 
  •  

質問

すみません、今日は TeamCity を使用して CI 環境をセットアップしてみる初日です。私は ASP.NET/Sql Server アプリを開発していますが、これまでのところ順調です。MSBuild は私のプロバイダーです。

統合プロセスの一環として、ローカル データベースへの変更がテスト サーバーにアップロードされることを自動的に確認する場合のオプションを知りたいです。DBGhost を使用してスキーマの変更を自動的に同期する方向に進みたいかどうかはわかりませんが、テスト サーバー上のデータベースをローカル データベースのコピーに置き換えるだけでも問題ありません。

ここでの選択肢は何ですか?

編集:さらに調査を進めると、RedGate SQL 製品がこれに適していることがわかります。ただし、安くはありません。彼らは、継続的統合プロセス内での製品の使用に関する優れたホワイトペーパーを提供しています。 http://downloads.red-gate.com/HelpPDF/ContinuousIntegrationForDatabasesUsingRedGateSQLTools.pdf

役に立ちましたか?

解決

まず第一に、データベースをソース管理戦略に含めるべきだと思います。これを達成するための基本原則は、以下に見事にまとめられています。 K.スコット・アレンシリーズ. 。チェックすることもできます Martin Fowler による進化的データベース設計. 。さらに実用的な情報については、次の回答を確認してください。 ソース管理からデータベースを構築するにはどうすればよいでしょうか?.

に書いたように 私の答え, 、私は 2 つのスクリプト セットを維持しています。1 つはデータベースを最初から構築できるセットで、もう 1 つは特定のデータベースをあるバージョンから最後のバージョンにアップグレードできるセットです。CI 戦略の一環として:

  • CI サーバー上のデータベースは、これらのスクリプトを使用して最初から再構築する必要があります。その後、スクリプトが動作している状態であることを確認できます。
  • 理想的な世界では、データベースのバージョン N-1 からバージョン N へのアップグレードを実行し、取得したスキーマを以前のデータベースのスキーマと比較できるはずです。まだ取り組んでいます...
  • アプリケーションの単体テストを実行できるように、テスト データをデータベースに挿入する必要があります ( BCPを使用する このために)。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top