0

別々のサーバー(開発と本番)に2つのデータベースがあります。本番の既存のデータに影響を与えることなく、データを開発から本番に複数のテーブルから移動する必要があります。SQL Managerがこのようなものをサポートしているのか、それともスクリプトを作成する必要があるのか​​、何か考えはありますか?

私の状況の詳細:

会社の調査を作成できるツールがあります。このツールは、開発版と本番環境にあります。本番データベースにテストデータを追加したくないので、ツールの開発バージョンを使用して調査を作成し、ローカルでテストしています。このツールは、調査、質問、回答、結果など、データベース内のいくつかのテーブルに関連付けられています。

現在の設定:調査が完了し、起動する準備ができたら、ツールの製品版を使用して、本番環境で行った以前のすべての作業を手動でやり直す必要があります。これは、私がそれを行うのに時間を費やさなければならないだけでなく、手動コピー中に間違いを犯すリスクがあるため、まったく理想的ではありません。

私がする必要があること:私が上で述べたそれらのテーブルは、すでにそれらの中に生産データを持っており、それらは私の会社が使用するために利用可能です。新しい調査を作成するときは、以前から持っていたものに影響を与えることなく、新しい調査の特定のレコード(すべてのテーブルから)のみを開発から本番に転送する必要があります。

4

3 に答える 3

3

使用するImport and Export Data

または、DEVサーバーをPRODサーバーのリンクサーバーとして追加してから、INSERT/SELECTステートメントを使用します

于 2012-10-19T15:03:07.640 に答える
3

データベース比較ツールを使用できます。SQLServerの場合はSQLDeltaを使用します。これにより、必要なデータベース(http://www.sqldelta.com/ )で実行するスクリプトを自動的に作成できます。

于 2012-10-19T15:06:11.947 に答える
1

これに対するすぐに使える解決策を見つけるつもりはありませんが、達成しようとしていることを明確に理解した後、詳細に役立つツールがあります。この時点で、何が起こるかを本当に明確にするために少し時間を費やすと、本番環境に移行するときに莫大な利益が得られます。

説明しているシナリオは、トランザクションデータまたはドメインデータと一緒にデータベースに構成タイプのデータがあるように聞こえます。つまり、アプリケーションが正しく機能するためには、開発環境から本番環境にプロモートする必要のある変更があります。これは珍しいことではありませんが、このようなシナリオのプロモーションプランを設定するときは、かなり慎重に慎重に行う必要があります。結局のところ、テストデータを本番システムにプッシュする必要はありません。構成が変更されます。したがって、devからprodにプッシュするテーブルを特定し、それらがその方向にプッシュする唯一のテーブルであることを確認することが重要です。

また、「本番環境に関する既存のデータに影響を与えることなく」についても言及されました。これについて詳しく教えてください(多分例)?通常、変更を一方向にのみ移動するように(慣例により)特定のテーブルを設定したままにします。つまり、devからprodに移動します。マージされた変更を含める必要のあるテーブルがある場合は、マージエラーに対処する必要があるため、これを正しく行うためにさらに注意を払う必要があります。プッシュするデータがあり、たとえば、ターゲットデータベースにはすでに存在していますか?

実際に移動したいものの計画を立てたら、他の回答で言及されているツールのいくつかはおそらく機能するか、Redgateのツール(SQLデータ比較など)をチェックしてください-それらはDBに役立ついくつかの本当に素晴らしい製品を作ります管理タスク。

----補遺----

質問の編集に基づいて、ここにいくつかの追加の考えがあります:

(1)本番環境調査で「無効」または「テスト」モードを使用できるようにして、別の環境でデータを変更する必要がないようにします。これにより、実際の開発変更が存在する場合にのみ、開発から本番に移行できるようになります。

(2)ある環境から別の環境に調査を移動するための「パッケージ」メカニズムを定義します。これにより、マージの競合やIDの変更などを一般的かつ確実に処理できるようになります。ボーナスとして、これにより、デバッグとテストの目的で本番調査を開発に戻すこともできます。

于 2012-10-19T15:16:05.770 に答える