データベースバージョンの完全なソリューションとしてMS vsデータベースプロジェクトを使用することは可能ですか?
質問
私たちのプロジェクトには、いくつかの生産データベースと多くの開発があります。各生産データベースは、「サブプロジェクト/ローカリゼーションバージョン」を表します。 SQL Server 2008を使用しています。
したがって、MS Visual Studio Database Projectを使用してデータベースバージョン化戦略を開発する必要があります。データベースバージョンとデータベースプロジェクトに関する多くの記事を読みましたが、まだ多くの質問があります。
開発者は、DBプロジェクトに変更をどのように実装する必要がありますか? (ベストプラクティス)
人間の介入なしに100%実行可能な「最新バージョン」展開スクリプトを生成する方法(いくつかのオブジェクトのスキップ、いくつかの変更など)?
MS Visual Studioデータベースプロジェクトでデータの変更を管理する方法は?展開前/展開後のスクリプトについては知っていますが、この問題を解決できないと思います。 (例:いくつかのテーブルを別のテーブルに再マップする必要があります)。
「理想的な解決策」は次のとおりです。
開発者は、データベースのデータベースプロジェクトを生成および維持しています[ProductionDB]。
新しいリリースにより、必要なすべての変更を受けてデータベースプロジェクトを[ProductionDB]に展開します。
開発者はデータベースプロジェクトを変更し、具体的な変更に関するいくつかのデータ操作スクリプトを書きます。
新しいリリースにより、必要なすべての変更を受けてデータベースプロジェクトを[ProductionDB]に展開します。
だから、最後の質問: 上記の目的でデータベースプロジェクトを使用するのは容易ですか、それとも誰かが同様のシナリオ/ソリューションを使用していますか?
PS:私はすでに次の議論を読んでいます:
解決
データベースプロジェクトは、ここで言及したほとんどの理由で正確に使用されます -
開発者は、データベースのスクリプトファイルをチェックアウトし、変更を加え、それらを再度チェックしてください。それらは、DEVデータベースに存在するオブジェクトではなく、.sqlファイルを変更することに注意してください。したがって、データベーステーブルに2つの列を追加する必要がある場合は、このテーブルの作成テーブルスクリプトを変更し、このテーブルの変更スクリプトを作成しません。
ターゲットの古いバージョンDBスキーマがある場合 - 最新のファイルを使用してこのプロジェクトをそのデータベースに展開するだけで、展開スクリプトが作成されます(必要な変更ステートメントがあります)。 「展開」時に展開スクリプトをDBに対して実行する必要があるかどうかを選択できるプロジェクト設定があります。
展開スクリプトは、製品コピーに対して個別にテストされ、パッチとして製品に適用される成果物である可能性があります。
データ操作スクリプトについて私はよくわかりませんが、あなたが言及した他のすべての目的のために、データベースプロジェクトは完璧です。
他のヒント
あなたが説明したのは、データベースプロジェクトが存在する理由です。
あなたの質問に答えるために:
開発者次第です。 Visual Studioで動作し、プロジェクトファイルを直接編集するか、MGMT Studioのデータベースのライブコピーを編集し、VSでスキーマ比較を使用して、プロジェクトに変更を同期することができます。私は数ヶ月間それを使用していますが、両方が正常に動作していますが、プロジェクトファイルをより頻繁に編集する傾向があります。
プロジェクトの展開ボックスをチェックして宛先DBを最初にドロップすると、最新バージョンが生成されます。ビルド中にVSDBCMDを呼び出すことで、人間の介入なしでそれを行うことができます
展開前のスクリプトは、あなたが暗示するものだけを目的としています。例としては、テーブルからすべてのデータを一時テーブルに選択し、事前展開中に切り捨て、プロジェクトにスキーマの移行を処理してから、デプロイ後に追加します。それはトリッキーになる可能性がありますが、その問題は決して解決するのが容易になりました。
お役に立てれば。
データの問題は、解決するのが難しいものです。ここレッドゲートでは、私たちのためにこれに多くのリクエストがありました SQLソースコントロール ツールは、VSデータベースプロジェクトと類似しています。良いニュースは、これを積極的にサポートを追加しており、クリスマスの前に試してみるための早期ビルドが必要だということです。興味がある場合は、早期アクセス通知にサインアップするだけです http://www.surveymk.com/s/sqlsourcecontrol_eapsignup 。フィードバックをお待ちしております。
あなたはオープンソースを見たいかもしれません BSN ModuleStore Toolkit, 、このワークフローを実装しようとします(実際にはそれ以上のこともします)。