我有一个 MVC 3 项目,我将基于代码的迁移与自动迁移一起使用(这可行)。
当我在新服务器上安装这个项目时,数据库是由 CreateDatabaseIfNotExist 初始化程序创建的,因为我使用的是种子方法。执行此操作后,我有一个带有一个条目的 __MigrationHistory 表。此条目的模型哈希与我的开发服务器中的最后一个完全相同。在我的开发服务器上,__MigrationHistory 表中的每个基于代码的迁移都有一个条目。
现在的问题是,当我尝试在新服务器上运行迁移时,我希望他们对我说“无事可做,因为模型哈希是相同的”,但迁移似乎只寻找 MigrationId 在数据库并尝试执行缺少 MigrationId 的每个迁移。当然这会导致异常,导致迁移尝试添加已经存在的数据库结构。
我认为这应该是一个非常常见的情况,那么有没有一种解决方法呢?我目前的解决方法是将开发系统的 __MigrationHistory 中的所有内容复制到新服务器,但这非常棘手,因为将 modelhash 处理为 varbinary。有没有更好的解决方案,或者我是否理解了一些逻辑错误?