2

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

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

ここでのオプションは何ですか?

編集:さらなる調査により、RedGate SQL製品がこれに適していることが示されています。しかし、彼らは安くはありません。継続的インテグレーション プロセス内で自社製品を使用するための優れたホワイトペーパーがあります: http://downloads.red-gate.com/HelpPDF/ContinuousIntegrationForDatabasesUsingRedGateSQLTools.pdf

4

1 に答える 1

4

まず第一に、データベースをソース管理戦略に含める必要があると思います。これを達成するための基本原則は、 K. Scott Allen シリーズに見事にまとめられています。Martin Fowler による Evolutionary Database Designも確認できます。より実用的な情報については、 「ソース管理からデータベースを構築するにはどうすればよいですか?」の回答を確認してください。.

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

  • これらのスクリプトを使用して、CI サーバー上のデータベースを最初から再構築する必要があります。その後、スクリプトが動作状態にあることを確認できます。
  • 完璧な世界では、データベースのバージョン N-1 からバージョン N へのアップグレードを実行し、取得したスキーマを以前のデータベースのスキーマと比較できるはずです。私はまだそれに取り組んでいます...
  • アプリケーションの単体テストを実行できるように、テスト データをデータベースに挿入する必要があります (これには bcpを使用できます)。
于 2009-09-01T08:36:07.910 に答える