2017-05-06 3 views
0

データベーススキーマパッチをAzure継続展開フローに組み込む標準的な方法を見つけることを試みてきました。SQL Azureデータベーススキーマパッチシステム

私が解決策を探している問題は、アプリケーションが進化するにつれて、データベースも同様です。新しい機能などをサポートするためにデータベースが頻繁に変更されています。

以前の作業状況では、XML文書のリンクリストのデータベースを変更する独自のソリューションを使用しました。データベースは、それが適用した最新のパッチを知っていて、新しいパッチがあればそれを適用します。そうすれば、すべての環境を同期させておくことが容易になり、変更はコードに従います。

これらの独自のソリューションはうまくいきましたが、これを行うためのさらに別のツールを実装する前に、SQL Azureによってこの問題を解決する標準ソリューションがあるかどうかがわかりました。しかし、私はそれを見つけることができませんでした。

自分でツールを作成する必要がありますか?

答えて

3

Visual Studioデータベースプロジェクトは、Azure SQLデータベースへの展開をサポートしているため、これをCIワークフローに組み込むのに適しています。従来のデプロイメント手法に慣れていれば、それは考え方の変化です。これらのプロジェクトは配備時に何を配備するかを決定します。たとえば、表を作成する場合は、表をプロジェクトに追加して列に記入します。その後、数か月後に列を追加する場合は、CREATE TABLEスクリプトに列を追加するだけです。展開すると、スキーマの変更だけが新しい列になり、追加されます。

https://channel9.msdn.com/Blogs/Have-you-tried-turning-it-off-and-on-again/Creating-a-Database-Project-for-Artificial-Intelligence

+0

これらの作業を本当によく:

これは、そのトピックの良い小さなシリーズです。以前のVSベースのMSSQLバージョニングの経験から、予想以上に優れています。私は、潜在的なデータ損失エラー(精度やタイプの変更)を引き起こす変更や、テーブルの削除/再読み込みの原因になるよう注意しなければならないという警告を追加します。デフォルトでは、これらの条件下で展開が完全に失敗します。私たちは、プリインストールスクリプトとポストデプロイスクリプトを起動する焼き付け機能を利用してこれに対処しました。エラーにもかかわらず展開を強制することもできますが、長期的な戦略ではそれに慣れていませんでした。 –

+0

ありがとう!これは、Visual Studioのデータプロジェクトが使用するものであることは非常に意味があります。私は以前にそれらを見たことがない。そしてピート、はい、あなたのポイントは非常に有効です!まったく同じ理由で逆の互換性のあるデータベースの変更を作成することに慣れています。実際にデータベースの変更をコードの変更に先んじて展開すると、インディアナジョーンズのスイッチに決して依存しません。 –