与 2 个或更多开发人员一起使用 EF 迁移时,我们遇到了一些冲突。我很好奇是否有人有比我们最终解决这些问题更好的解决方案。首先,这是场景:
2 位开发人员,Dev1 和 Dev2:
问题:
- Dev1 和 Dev2 都在其应用程序的工作副本中同时进行模型更改。
- Dev1 和 Dev2 都创建迁移 (add-migration) 并更新其本地数据库,以便他们可以测试 (update-database)。
- Dev1 首先完成并检查他的代码。
- Dev2 从 Dev1 中签出代码并运行 update-database。
- Dev2 收到一个错误,说有未完成的更改。这些“未完成”的更改是之前在他自己的迁移中应用的更改,但在应用 Dev1 的迁移后现在下落不明,即使这些更改实际上已经应用了。模型验证似乎很混乱,认为这些更改是由于应用 Dev1 的迁移而从未应用过的。
我们的解决方案: Dev2 创建一个新的迁移并清空 Up() 和 Down() 方法,然后运行 update-database。这使一切重新同步。
此解决方案有效,但它会导致许多空迁移,除了使模型哈希恢复同步之外没有其他目的。有没有人遇到过类似的问题并找到了另一种解决方法?还是我们错误地使用了数据库迁移?