TeamCity を使用したテスト環境用に、.NET アプリケーション (SVN で管理されたソース) の CI と自動展開を作成していますが、すべて順調に進んでいます。私は、db スクリプトの実行を自動化したい段階にあります。http://www.troyhunt.com/2011/02/automated-database-releases-with.htmlなどのいくつかの記事を検索して読みました(troyhunt のブログは非常に貴重です!)。 RedGate ソフトウェアを使用して変更を管理および展開する方法。新しいツールにスクリプト生成を処理させるのは少し心配なので、調査する価値のある他の受け入れられた方法があるかどうか疑問に思っています.
ソリューション設計の現在の標準には、orm db などの DB 関連ファイルを含むプロジェクトが含まれます。また、以下に示すように、変更スクリプトを含む一連のフォルダーも含まれています。
MySolution
> MySolution.Data
> 3.0 Scripts
* 01 - UpdateUserTable.sql
* 02 - UpdateRoleTable.sql
> 3.1 Scripts
* 01 - CreateJobTable.sql
* 02 - InsertJobTypes.sql
* 03 - AndSoOn.sql
チェックイン時にテスト環境に自動デプロイしたいのですが、実際のリリースをデプロイする頻度ははるかに低く、RedGate の比較ツールが時々発生する変更のレベルを処理できるかどうかわからないため、この構造は重要だと思います。そのため、スクリプトのバージョン フォルダーを使用し、リリース時にマイナーをインクリメントして、スクリプトのバージョンをきちんと保持する方がずっと快適です。
この既存の構造があるため、それを維持し、デプロイが成功したときに db スクリプトを適用できる TeamCity ビルド定義を追加する傾向がありました。TeamCity を使用して、期待されるパス内で SVN に新しく追加された .sql ファイルを識別し、それらをサーバー上で実行できると想像しましたが、最初から期待しすぎていたのかもしれません。私は過去にこの種のソリューションを TFS と MSBUILD およびカスタム ビルド ステップで実装しましたが、TeamCity の方法はまったく新しいものです。
このようなことを達成するプロセスはすでにありますか?私にはかなり正常な実装のように思えますが、まだその方法を見つけることができませんでした。それとも、RedGate ソリューションは私たちが目指すべき標準なのでしょうか?