如何在 flyway 中压缩/合并迁移

Posted

技术标签:

【中文标题】如何在 flyway 中压缩/合并迁移【英文标题】:How to squash/merge migrations in flyway 【发布时间】:2014-10-19 19:13:07 【问题描述】:

假设我有从 V1_1V1_300 的迁移脚本 - 这是一个相当大的数字,需要很长时间。但是有时会有一个版本 - 我可以从飞行的角度以某种方式合并所有这些迁移吗:

V1_1V1_300 的所有迁移都将在一个文件中(例如:V2_1) 这些迁移所花费的时间将会减少

手动检查重叠确实非常耗时。提前感谢您的回答。

【问题讨论】:

Any way to "compress" Flyway migrations?的可能重复 【参考方案1】:

我们在我的项目中遇到了同样的问题,因此决定汇总已部署到生产环境的版本。为了将增量更改汇总到 1 个文件中,我从头开始在数据库中运行迁移,然后将整个数据库转储(导出)回 1 个 SQL 文件中。 我使用迁移的最新版本命名了该文件。在你的情况下V1_300__rollup.sql。然后您可以继续添加新版本:V2_1V2_2 等,并在您想要汇总时重复。

【讨论】:

@Mateusz 你们中的任何一个都可以详细说明一下吗?您是否将V1_300_patch 替换为V1_300_rollup 脚本,还是作为新脚本添加的?您是否删除了脚本 V1_1 到 V1_299?此外,在添加汇总后,您是否必须执行 flyway:repair 才能使飞行路径正常工作?我很好奇这将如何在生产数据库上实际运行。 这有点晚了,但可能有用。删除所有脚本 V1->V1_299,并使用模式转储的修改内容重命名 V300。无论如何,在迁移结束时总是进行一次飞行路径修复是个好主意,如果不需要修复,这是一个空操作。

以上是关于如何在 flyway 中压缩/合并迁移的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PySpark 中压缩两个 RDD?

如何在 C# 中压缩(和解压缩)字节 []?

如何在 Android 中压缩字符串

如何使用 postcss 在顺风中压缩文件大小?

在 python 中压缩文件时如何保留目录?

如何在 laravel 5 中压缩 HTML