首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据库部署工具进行并发功能开发

使用数据库部署工具进行并发功能开发
EN

Stack Overflow用户
提问于 2017-07-14 07:09:49
回答 1查看 178关注 0票数 1

我正在寻找一种特定的策略/约定,用于使用功能分支和数据库部署工具(如DbUp、DbDeploy、ReadyRoll等)进行并发开发。

我们为并发项目开发运行多个功能分支。

每个分支机构都有一个专门的开发、质量保证和UAT环境,该环境通过八达通部署部署。

我正在尝试使用一个工具来处理八达通的自动数据库部署,该工具将处理每个分支中应用的更改。

数据库更改将发生在所有分支中(包括发布分支)。

到目前为止,我看到的大多数工具都使用基于顺序的脚本方法,这些脚本签入到VCS中并由该工具部署。该工具大部分以文件名升序应用脚本,我所见过的大多数工具都指定遵循1、2、3等方法。

这对于一个分支来说工作得很好。

我的问题是,当特征A有1,特征B有1时-两者都合并到主分支中。我现在有两个#1脚本。更有趣的是,我们的生产之路是再合并一次,可能也会有一个1。所以现在我们有了3个#1脚本。

还有向后合并的问题。一旦项目完成-将release分支合并回main,然后再次合并到feature分支,以便为下一个项目重置它。在这个场景中-我有两个额外的#1脚本,还没有应用到目标功能分支数据库。

我最初的解决方案是使用julian date作为签入源代码的sql文件名的前缀。我还在考虑将分支名称与工作项一起应用于文件。因此,sql文件将遵循{XXXXX_Y_ZZZZZZ.sql}的约定,其中xxxxx是儒略日期,y是分支,zzzzzz是来自TFS的工作项。

我正在寻找这个问题的具体解决方案。还有没有人解决了这个问题?你干什么了?它的缺点是什么?你用的是什么工具?

EN

回答 1

Stack Overflow用户

发布于 2017-08-06 17:49:44

你看过Readyroll的semantic versioning吗?

我们现在正在实现Readyroll,我们是一个很小的团队,在这个团队中,很容易在功能分支之间进行沟通和限制更改。

我们集成到一个开发分支,并在早期检测到冲突的更改,并在必要时基本上重写早期的迁移脚本(这需要有一个数据库项目的基线,您可以恢复到该基线)

在Redgate网站上有更多关于使用分支的信息,但并没有完全涵盖您的场景,switch branches with readyroll

在研究工具时,我基本上得出的结论是,它是基于状态的方法或基于迁移的方法之间的选择。我喜欢readyroll的观点,它提供了一种混合。

我很好奇你最终会得到什么!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45092255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档