我见过this question,我想知道如何将自动迁移与显式迁移混合应用到生产环境中。
假设我按以下顺序创建迁移:
既然没有为自动迁移创建任何文件,那么如何确保将在生产环境上创建的自动迁移SQL与在我们的开发机器上创建的SQL相同?
我有一种感觉,一旦我们有了第一个版本,我们就应该完全停止使用自动迁移.
发布于 2015-05-17 16:06:01
我曾经尝试过这样的场景,并给出了您的迁移顺序,这就是EF的行为方式:
Update-Database -TargetMigration:0时,它们都将以与应用程序相同的顺序被恢复。Update-Database之后,所有显式迁移都将应用到数据库中,并且如果您已经设置了AutomaticMigrationsEnabled = true;,则将应用[Timestamp]_[YourLastMigrationName]_AutomaticMigration。请注意,EF处理自动迁移的执行顺序!我认为,当我在自动迁移中创建一个新的表XY时,会出现问题,下面的Explicit Migration D可以依赖该表在数据库中(以及许多其他场景)。但是由于迁移中有数据库的快照,EF将能够从这种情况中恢复,并以某种方式重新安排自动迁移。
最后,如果不深入了解实体框架的代码,我就不推荐这样的方法--不会碰运气的。在我的项目中,我只使用显式迁移,它是在中维护的--通常是主分支或迭代分支,只有(因为有一个团队成员在A之上创建了迁移B,而另一个成员在A之上创建了C)。
https://stackoverflow.com/questions/30284935
复制相似问题