我创建了一个大的迁移,创建我的初始模式并运行数据库更新。EF迁移中的错误更好地回滚,删除,重新添加或只是简单地添加新的
之后我发现应该是DateTime类型的字段意外地是字符串类型。我将它固定在我的模型中。
现在,我应该将数据库更新为发生错误之前的迁移,请删除错误的迁移,然后重新添加迁移。或者只是简单地添加一个只修补修补程序的新迁移。
我倾向于回滚,删除,然后重新添加的原因是因为我不想要任何搞砸了不正确的信息我会迁移?我觉得迁移不正确是毫无意义的。
我相信混淆对我来说是因为我从来没有在生产环境中使用迁移,所以我不认为我知道他们的力量。因此,我希望有人澄清旧的迁移是否会出现错误,或者是否应该全部没有错误,并在添加新模型/实体时显示数据库的整个进度。
就我个人而言,我使用migrations来实现一个目的:更新远程UAT和PROD数据库。当我第一次开始开发绿地应用程序时,我将使用DropCreate初始化程序之一,甚至不用担心迁移。当我准备部署时,我切换到迁移。我总是按照克里斯所描述的[这里]滚动我的迁移(http://cpratt.co/migrating-production-database-with-entity-framework-code-first/#at_pco=smlwn-1.0&at_si=54ad5c7b61c48943&at_ab=每12&at_pos = 0&at_tot = 1)。 –
@SteveGreene你使用实体框架DropCreate功能吗?如果是这样,你知道如何实施它在EF核心1.0(EF7) –
对不起,错过了核心标签。它不同,但可行:使用Database.EnsureDeleted,然后使用Database.EnsureCreated。 https://github.com/aspnet/EntityFramework/issues/3042 –