0

MVCコードファーストソリューションがあり、本番サーバーでソリューションを実行しています。

モデルにいくつかの変更を加えたところ、開発用コンピューターに新しい空のデータベースが作成されました。

私の質問は今です:

1)本番データベースから開発用コンピューターにデータを取得するための最良の方法は何ですか?本番環境から「データのみ」のスクリプトを生成しようとしましたが、機能しませんでした。

2)データを失うことなく本番サーバーに新しい構造を実装するための最良の方法は何ですか?

VS2012Professionalを使用しています。

編集

以下は私のために働いた

1)prodサーバーからのデータベースのバックアップとローカルでの復元

2)VS2012のスキーマ比較を使用して、復元されたデータベースのスキーマを更新します

3)復元されたデータベースの名前を元の名前localに変更します(これで、prodからのデータと正しいスキーマを含むローカルデータベースができました)

4)ローカルデータベースのバックアップとサーバーでの復元(サーバー上のデータベースに適切なスキーマが追加されました)

私が取り替えなければならなかった唯一のグリッチ

Database.SetInitializer(new myDbInitializer());

Database.SetInitializer <myContext>(null);

システムがデータベースをドロップ/作成しようとしないようにするため。

4

1 に答える 1

1

本番データベースから開発用コンピューターにデータを取得するための最良の方法は何ですか?私

セキュリティが問題にならない限り、バックアップ/復元します。それが合法的に機能しない場合もありますが、それはバックアップ/復元/スクランブルまたはデータジェネレーターです(開発者がデータを表示することを許可されていない場合)。

データを失うことなく本番サーバーに新しい構造を実装するための最良の方法は何ですか?

データベースを更新するためのスクリプトを生成します。点。

悲しいことに、「ハリウッドサインの大きな文字」のような「ポイント」は、自分だけが残されているエリアです。スキーマ比較を実行したり、デルタスクリプトを生成したりすることもできますが、それらは非常に原始的です。挿入(メタデータ)、クリーンアップ操作、名前の変更は問題を引き起こします。

最高は:

  • デルタを生成する
  • 手動で適切な形にします。
  • 更新中に、デルタスクリプトを適用します。

スキーマデルタが適切に処理できないことがたくさんあるので、実際にはおそらく最良の方法です。

一例-非正規化されたテーブルを作成し、それを(4に)正規化してから、ビューに置き換えます。

デルタスクリプトは、正規化された値、新しいテーブルを生成し、そこに挿入を実行してから、ビューを生成する必要があります。

関係するロジックがあります-自動デルタはそれを処理できません。

于 2013-01-16T21:21:25.190 に答える