我pressly/goose
在我的项目中使用,但我在版本控制迁移中遇到了冲突。默认情况下,goose 使用当前时间戳创建迁移文件。例如202105211346_users.sql
,没关系。但是,如果有人比我更早地创建了迁移文件,并且当我们尝试应用另一个迁移文件(之前创建的)时我的迁移已经应用,那么该文件将不适用于数据库,因为它是更早创建的,并且它的时间戳比我的文件更小. 好的。我使用混合迁移解决了这个问题,当时间戳到达特定分支(开发)时使用 CI 转换为序列号。所以现在我们有这个:202105211346_users.sql
->01_users.sql
. 好吧,这很酷。但是我们还有另一个分支(阶段),我们可以将 smth 推送到阶段通过的开发分支,但我们也可以绕过开发分支进行推送。因此,当文件01_users.sql
已经存在于开发分支(序列号 01)中,并且有人将文件推送到202105211347_cars.sql
转换为01_cars.sql
(也是序列号 01)的阶段分支时,我们可能会遇到这种情况,在下一步我们合并develop
- >stage
并且 CI 尝试应用使用鹅迁移。提醒我们01_user.sql
在数据库中,现在 CI 尝试申请01_car.sql
,这个文件有相同的序列号和 goose throw panic: goose: duplicate version。我该如何解决这个问题?
问问题
70 次