非常に簡単に:
LadislavMrnkaの記事に基づいてCodeFirstとして構築された既存のプロジェクトにEFMigrationsを実装していました
すでに本番環境に移行しているプロジェクトにEF移行を実装する場合、開発に適用された更新と本番環境用に生成されたスクリプトの間で移行スクリプトをどのように管理できますか?
私が困惑している理由は、スクリプトごとに生成されたMigrationIdにTimeStampが追加されているためです。移行の試みで、devとprodの__MigrationHistoryテーブル内に記録されたエントリが異なることに気付きました。したがって、DBがかなりの数の移行アップグレードを実行する場合、何らかの理由でダウングレードが必要になった場合は、疑問が生じます。 、を使用してスクリプトを作成するための正確なMigrationIdを相互に関連付けることは非常に困難です。update-database -script
テーブルを作成する$InitialMigration
を作成する非常に簡単なプロセス。__MigrationHistory
次に、モデルへの変更の後update-database
に、データベースを移行するための変更が続きます。そして、このプロセスは、モデル変更の論理的にグループ化されたバッチがある場合は常に循環します。
__MigrationHistory
表を見ると、
+------------------------------------+-------------------------+------------------------------------------------------------------+----------------+
| MigrationId | CreatedOn | Model | ProductVersion |
+------------------------------------+-------------------------+------------------------------------------------------------------+----------------+
| 000000000000000_BootstrapMigration | 2012-03-01 17:40:39.567 | 0x1F8B08000000400ECBD07601C49...HASH_TRUNCATED...CA7F54A20F50000 | 4.3.1 |
| 201203011745335_AutomaticMigration | 2012-03-01 17:45:33.557 | 0x1F8B08000000400ECBD07601C49...HASH_TRUNCATED...F4AE3681EF50000 | 4.3.1 |
+------------------------------------+-------------------------+------------------------------------------------------------------+----------------+