c# - 在团队源代码管理中处理实体框架代码优先迁移
问题描述
我目前在一个使用 Entity Framework 6.1.3 作为主要对象关系映射 (ORM) 框架的团队中工作。
大多数时候它工作得很好,但是当两个或多个不同的团队成员添加迁移时问题就开始了,然后应该合并这些迁移。
来自微软的例子:
为了保持model snapshot
最新,我们通常Add a blank 'merge' migration
会更新快照。来自 PMC:
Add-Migration "Fix merge" –IgnoreChanges
我们当然可以,update the model snapshot in the last migration
但是由于我们使用拉取请求并验证彼此的代码,因此通常可能有两个未决的迁移,但它们都没有被添加到master
分支中,因为它们没有经过审查。
然而,考虑到空白迁移,我们在这里也遇到了问题。示例:两个迁移已同步到 master 并且模型快照不同步。开发人员对数据库模型进行了一些更改,然后与 master 进行了合并。开发人员需要添加空白合并才能同步模型快照。使用的问题–IgnoreChanges
是即使开发人员对其分支中的模型进行了一些更改,迁移也将是空白的。如果–IgnoreChanges
不使用,那么新迁移的每个更改也会显示出来,并且可能会导致异常,因为代码将被添加两次。
https://msdn.microsoft.com/en-us/library/dn481501(v=vs.113).aspx
有没有其他方法可以在代码中解决这个问题?现在,我们正在提醒 Slack 中的迁移以在拉取请求中给予它们优先级,但这远非最佳流程。鉴于我一直在阅读的内容,我认为这是不可能的,但我很乐意被证明是错误的。鉴于我们今天使用的拉取请求流程,在上次迁移中更新模型快照并不总是适合我们。
解决方案
推荐阅读
- python - 如何使用 Python 获取 Twitter 数据
- firebase - Firebase 云函数部署错误 - HTTP 错误:400,收到无效的 JSON 有效负载
- azure-devops - 为什么当我们设置 build.updatebuildnumber 时 Azure Devops 无法识别最后一个测试
- pandas - 熊猫插入从一列到下一列的百分比差异
- ios - 新项目的 SwiftUI 2.0 CoreData 问题 - '在范围内找不到类型'项目''
- amazon-web-services - AWS Lambda 函数 + SNS 发送事件状态的电子邮件
- sql - Oracle 分析功能?
- pine-script - 用一条线连接更高的高点和更低的低点
- html - 无法从嵌入的 html 获取表单
- java - Spring boot检测位于另一个maven模块中的mongodb连接错误(MongoSocketOpenException)