当涉及到数据库模式时,我总是发现版本控制有点问题。
所以 - 我目前正在评估 Entity Framework 代码优先迁移,到目前为止我印象非常深刻。
我的问题是,有没有人有在使用 DVCS 的团队中使用 Migrations 的经验?
如果在不同分支上工作的开发人员各自创建自己的迁移,那么“更新数据库”工具在合并分支时是否能很好地应对?
我想可能发生的情况是列表中间会出现一个新的迁移。这会被接受,还是只是寻找比上次部署的“更新”的迁移?
我很欣赏团队必须小心不要创建冲突的架构更改 - 这是我们可以管理的事情 - 但知道“更新数据库”是否足够聪明以发现“丢失”迁移会很有用?
谢谢,
- 克里斯
最佳答案
据一位blog post我可以在该主题上找到,无论使用 VCS 工具如何,并行开发似乎都与 EF 中数据库迁移的当前状态有关。由于它跟踪数据库状态的方式,似乎没有办法处理这种情况。 Pawel 提供了一个 example project on GitHub来显示问题。
实际上,使用独立工具来处理数据库迁移可能会好得多。我用过 Migrator.NET取得了巨大的成功,并且它确实正确处理了并行开发人员的架构更改。它还使用一种相对技术含量较低的方法来跟踪数据库“版本”,只要您和您的团队决定,除了通过迁移类(我们称那天为v1 数据库)。
关于entity-framework - 在 DVCS 项目中使用 Entity Framework 代码优先迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10298298/