我一直在尝试使用Liquibase或DBDeploy。我更喜欢 Liquibase,因为它的非 SQL 接口(即我可以只使用 JSON 或 Yaml 变更集)。但是,这两个软件都有一个问题。
Liquibase 工作流程
- 我创建了一个主变更日志。它所做的只是
includeAll
一个文件夹,其中包含带有小变更集的小文件。 - 然后我创建变更集,并在它们前面加上一个数字(例如时间戳,或简单的整数,如 1、2 等)。
DBDeploy 工作流程
- 我刚开始制作 delta sql 文件,前缀与上面的数字 2 相同。
问题
好吧,这个问题是如此微不足道,我觉得问它很愚蠢,但它就在这里。考虑这种情况:
- 我创建了一个分支来处理我的功能,比如向系统添加订单。
- 我的同事 Bob 创建了自己的分支来向系统添加产品。
- 当需要合并时,不知道谁的变更集或增量 sql 将首先运行。这可能会破坏数据库。
这不会发生在任何人身上吗?如果是这样,在PHP领域解决它的方法是什么?
谢谢。