0
  1. 現在のデータベースの状態 (どの移行が適用されているか) に関する情報はどこに保存されていますか? 「dbo.__MigrationHistory」テーブルである可能性があると思いますか、それともこのテーブルはロギング目的のためだけですか?

  2. 移行を有効にした場合、移行を追加し、データベースを更新しました。その後、コードを SVN にチェックインし、別の開発者がチェックアウトしました。この別の開発者は、自分のデータベースを作成/更新するために何をしなければなりませんか?

そのようなオプションがあります:

1) Update-Database コマンドをすぐに呼び出します。

2) 最初からすべてを実行します (Enable-Migration、Add-Migration、Update-Database)。

3) すべてを実行しますが、Add-Migration ステップはスキップします (既に存在しており、新しい開発者ごとにもう一度追加するのは奇妙に思えます)。

私の仮定のどちらが正しいか、または誰も正しい方法がない場合は?

4

1 に答える 1

1
  1. Get-Migrationsデータベースに適用されている移行を取得するには、コマンド(参照)を使用できます。

  2. すべては、データベースの作成方法、使用している初期化子によって異なります。 これらに慣れていない場合は、この記事を読む価値があります。

    • イニシャライザを使用する場合DropCreateDatabaseAlways、データベースはアプリケーションの起動ごとに削除および再作成されるため、データベースの更新について気にする必要はありません。

    • initiliazerを使用するDropCreateDatabaseWhenModelChanges場合、アプリケーションの起動時にモデルが変更されたことをEFが検出すると、データベースは削除されてから再作成されます。

    • 初期化子を使用するCreateDatabaseIfNotExists場合、または初期化子が定義されていない場合、データベースがまだ存在しない場合はデータベースが作成されます。データベースがすでに存在し、移行を追加した場合は、(およびコードを取得するすべての開発者が)Update-Databaseコマンドを使用してデータベースを更新する必要があります。

    • Code-First Migrationsで導入された新しい初期化子がありますMigrateDatabaseToLatestVersion。この初期化子は、定義された最新の移行にデータベースを自動的に更新します。このページの最後のセクションを参照してください:http://msdn.microsoft.com/en-us/data/jj591621

于 2012-10-11T09:52:55.420 に答える