【发布时间】:2014-07-01 06:55:10
【问题描述】:
最近我遇到了 EF codefirst 数据库迁移的问题。我们已将 MigrateDatabaseToLatestVersion 用于 DB 初始化程序。
Database.SetInitializer(new MigrateDatabaseToLatestVersion<TestDataContext, MyConfiguration>());
internal sealed class MyConfiguration : DbMigrationsConfiguration<TestDataContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
...
问题是 - 我们不小心使用以下命令运行了旧的数据库迁移文件:
Update-database -TargetMigration some_old_test_migration_cs_file
这导致我们丢失了最新的实体架构更改,并且我们无法将最新的更改推送到数据库。在浪费了大量时间进行故障排除后,我们通过从表 __MigrationHistory 中删除迁移历史记录来解决该问题。
我的问题是 - 尽管我们启用了自动迁移,但我们是否还应该在实体(代码级别)更改时添加迁移脚本?
这方面的最佳做法是什么?
【问题讨论】:
标签: entity-framework entity-framework-migrations