2012-04-18 13 views
0

SQL Server 2008をインストールしている2台のサーバーマシン(開発用、その他のクライアント用)があります。開発者が開発サーバーのテーブル/ビュー/ストアドプロシージャに変更を加えるときは常に、クライアントサーバーも反映する必要があります。データに影響を与えずに2つのデータベーススキーマを一貫性を保つにはどうすればいいですか?

現在、テーブルの新しい列、ストアドプロシージャの変更など、すべての変更を手動で処理しています.DBスクリプトまたはレプリケーションでは、プロシージャ全体を自動化できますか?または、データベーススキーマの一貫性を維持するためのよりよい解決策があります。

ヘルプは高く評価されます。

ありがとうございます!

答えて

0

すべてのデータベースアプリケーションには問題があり、解決するのは難しい問題です。このようなソリューションは、開発者が行った変更を最初にテストする必要があるため、テストされていないコードを実際のデータベースとマージさせたくないため、スケジュールすることはできません。私は現在、この問題を解決するための一般的な解決策を書いているので、この質問は私には興味深いものです。

しかし、私たちはOpen DBDiffというオープンソース製品を使用しています(Googleでは見逃せません)。ソースとターゲットデータベースを渡し、ターゲットをソースと同じにするスクリプトを生成します。アセンブリやユーザーの役割をコピーするのに問題があるようですが、すべてについては何の問題もありませんでした。

+0

ご返信ありがとうございます。あなたの返事のおかげで、データベース間の違いを見つけるためのアプリケーションを開発することを私は思っていました。 –

0

変更がテストされ、ソースコントロールに適切にチェックインされていることを確認した後、人間は展開をすべきだと思います。これは完全に自動化するものではありません。

人間はツールを使うべきです。強力なスキーマ比較ツールを備えたVisual Studio 2010 Professionalを使用して、配布スクリプトを生成および実行し、ソース管理の統合を行います。

1

すべてのスキーマの変更がSQLスクリプトを介して排他的に行われる環境を作成することを強くお勧めします。各開発者は、バグフィックス(または新機能)に関連するスクリプトをバージョン管理システムにコミットする必要があります。

通常はあなたが(、1.0から1.1まで1.2などの1.1から1に)一つの大きな一からデータベースを作成するスクリプトと各バージョンのアップグレードのための1つを持っていると思います

あなたは男の力を持っている場合は、それ各バージョンごとに1つの "from-scratch"スクリプトを維持することも非常に便利です。必要なものかどうかは、空のシステムにインストールする頻度によって決まります。

私たちはLiquibaseを使用してこれをすべて維持してきた経験があります。データベースに適用されたパッチとアップグレード中に実行する必要のあるパッチが自動的に追跡されます。また、同じマイグレーションを2回実行することもできません。

+0

ご返信ありがとうございます。あなたの入力は非常に高く評価されています! –

関連する問題