数据库迁移脚本和带有时间戳的版本控制
Posted
技术标签:
【中文标题】数据库迁移脚本和带有时间戳的版本控制【英文标题】:Database migration scripts and versioning with timestamps 【发布时间】:2014-07-16 18:41:24 【问题描述】:我们正在尝试使用 Flyway (http://flywaydb.org/) 来应用我们的数据库迁移脚本。
大多数人都使用这样的时间戳版本:20140527112103__alter_some_table.sql 从 bash 脚本或 maven/ant 任务生成这些文件。
如果开发人员在周一生成文件,在某项任务上工作了几天,然后提交迁移脚本,这个问题会怎样呢?现在它将出现故障,并且可能与同时提交的其他脚本发生冲突。
在提交期间有什么方法可以在文件名中添加时间戳?
【问题讨论】:
【参考方案1】:您可以打开 outOfOrder 模式,然后一切都会好起来的。除非开发人员 A 在开发人员 B 同时删除的列上创建索引。但是开发人员 A 应该提取最新的更改并测试迁移。
【讨论】:
【参考方案2】:您所要做的就是在提交之前立即重命名它,您应该没问题。
【讨论】:
这不会破坏我的开发数据库吗?致力于迁移 20140528113435_adding_a_table.sql,我已将其应用于我的本地开发数据库。在提交之前将其重命名为 20140601113435_adding_a_table.sql。 next flyway:migrate 会再次运行,导致重复表错误。以上是关于数据库迁移脚本和带有时间戳的版本控制的主要内容,如果未能解决你的问题,请参考以下文章