C# 首先使用db时,如何管理不同分支中的db架构更改?
我有一个Entity Framework 5 DB First项目,我们刚刚从TFS迁移到Git。在TFS中,我们使用RedGate的SQL源代码控制使DB保持最新,这是一种很好的方法,假设每个人都在开发非主干,因为分支非常困难,所以几乎每个人都在开发最新版本的DB模式 现在我们使用Git,但是,我希望db更改成为特性分支的一部分。由于Git允许如此轻松地从一个分支跳到另一个分支,我希望开发人员可以从包括db更改在内的特性跳到没有这些更改的特性。代码更新得很好,但是数据库呢?我怀疑RedGate的产品能否在这样的瞬间处理上下迁移,还是我错了?如果RedGate不能处理这些上下迁移,那么在我的代码中正确的方法是什么 顺便说一句,我搜索了其他类似的问题,并发现,尽管答案是在功能分支中包含迁移脚本。对于“向上”迁移来说,这一切都很好,但是如果我在一个分支中编写一个特性,然后我切换到另一个分支对其他人的请求进行代码检查,那么我在分支中对本地数据库所做的更改应该会以某种方式恢复。但是怎么做呢C# 首先使用db时,如何管理不同分支中的db架构更改?,c#,git,entity-framework,redgate,db-first,C#,Git,Entity Framework,Redgate,Db First,我有一个Entity Framework 5 DB First项目,我们刚刚从TFS迁移到Git。在TFS中,我们使用RedGate的SQL源代码控制使DB保持最新,这是一种很好的方法,假设每个人都在开发非主干,因为分支非常困难,所以几乎每个人都在开发最新版本的DB模式 现在我们使用Git,但是,我希望db更改成为特性分支的一部分。由于Git允许如此轻松地从一个分支跳到另一个分支,我希望开发人员可以从包括db更改在内的特性跳到没有这些更改的特性。代码更新得很好,但是数据库呢?我怀疑RedGate
更新:RedGate通过向我推荐来响应支持电话。基本上,如果您想切换分支,您必须从源代码管理中取消db的链接/重新链接。您不能创建或合并分支。总之,呃。有更好的建议吗?到目前为止,我找到的最好的解决方案来自RedGate——他们的。您可以在每个分支中进行提交,当您在分支之间切换时,您可以在DB选项卡上“获取最新信息”,以将本地DB更新为适用于该分支的DB模式 它在80%的情况下都能正常工作,但它不是一个完美的解决方案
- 如果在迁移之前将分支切换到架构的早期版本,则无法运行“关闭”脚本
- 当您启用FILESTREAM时,系统会出现一些错误。我已经向他们的技术支持报告了这一点,他们已经承认了这个错误,所以希望这将很快得到解决
不管怎么说,我现在把它作为解决方案,但是如果有人想出更好的主意,让我们听听。这确实是一个乏味的问题。我目前正在为每个主要分支(开发、发布和增强)使用单独的文件夹,这迫使我执行以下操作
- 每个主要分支的数据库
- 每个主要分支都配置为连接到相应的数据库。一般用于单元测试和开发
- 还为每个分支配置了Web服务器。例如