それをどのように計画しているのかわかりませんが、正しく理解できれば、維持したいと思いますがone database (shared) in between number of web sites
、各サイトには、異なる名前の異なるプレフィックスを持つ独自のメンバーシップテーブルがありますか?
最初の問題は、for each Db/table name change - you need a 'code to match'
つまり、コードファーストエンティティとコード、Dbの「移行テーブル」とテーブルがすべて同期しているため、すべてが正常に連携できることです。その意味で、Dbでスクリプト名またはテーブル名を変更するだけでは機能しません。It has to be done at the level of attributes (as @Steven suggested) or fluent configuration.
これは、どういうわけか、サイトごとに個別の構成を「構築」し、それらを個別に(コード)各サイトにデプロイする必要があることを意味します-そして、それぞれmega Db
の小さなものをすべてvariants
一緒にマージしたものを構築します。
それを管理するのは難しいでしょう-しかし、あなたは試すことができます(私が上で説明したこと)-それがうまくいくかどうかはわかりません(これを試すには多くの「インフラストラクチャ」が必要なので)-しかしおそらくこれらの線に沿っています。 。
Table
属性 を置く(または流暢な設定を介して)
- コードをビルドします-それぞれのテーブル名を「変更」します-そして再構築します(理想的には、これをバッチで自動的に行うために、ツール、コードジェネレーターを使用する必要があるかもしれません-つまり、ビルド、ファイルを外部にコピーし、名前を変更して繰り返す)
- ケースごとに「移行」を作成し(テーブル名)、移行をファイルとして
Update-Database -Script
保存し、ケースごとに実際のスクリプトを保存します(重要)。
- 各移行を保存します。または、「スクリプト」と言って表すことができます。
- 完了したら
merge
、スクリプトを移行する必要があります。one big master script
つまり、同じテーブルのセットを削除し(もちろん、1つだけ残します)、メンバーシップテーブルのすべての異なるセットをコピーします。
- データベースからを削除し
migration table
ます-それは確かに同期しておらず、何もできません(または、コードにフラグがありますが、それを無視すると思いますが、今は持っていません)。詳細については、以下の他の投稿を参照してください。
- 作成したスクリプトを使用して、1つのマスターDbをデプロイします
- 特定のコードを各サイトにデプロイします。
- それがすべてうまくいくことを祈ってください:)
よりスマートなものがあるはずですが、その一方で、移行はそのようなシナリオでは機能しないため、これを実現することは不可能ではないにしても難しいでしょう。
役立つかもしれないいくつかの一般的な情報...
移行を既存のデータベースと同期する方法-本番シナリオを対象とし、Db-sとCFを一致させるように維持します。それはあなたが必要としているものではありませんが、詳細な説明、私が少し前に書いたこれを解決するための可能な方法があります...
MVC3とコードファーストの移行-「データベースが作成されてから、「blah」コンテキストをサポートするモデルが変更されました」
要約する...
私にとってうまくいくのは、Update-Database-Scriptを使用することです
これにより、「移行の違い」を持つスクリプトが作成されます。これは、ターゲットサーバーデータベースにSQLスクリプトとして手動で適用できます(適切な移行テーブルの行を挿入する必要があります)。
それでもうまくいかない場合は、2つのことを行うことができます...(もっと内側に)...