早期版本的迁移在 Postgres 的升级版本中不再有效 SQL

An early versioned migration is no longer valid SQL in an upgraded version of Postgres

在测试我们的 Postgres 数据库升级时,我们发现我们最旧版本的迁移文件之一不再有效 SQL。这对于生产数据库来说不是问题,生产数据库(当然)已经在 schema_history_table 中进行了这些迁移,但是现在这个损坏的 V 文件使得建立任何新沙箱变得不可能。

将旧的 V 文件带入现代世界而又不会永远孤立我们的生产数据库的最佳方法是什么?

我能想到几个可能的选择。

  1. 配置 postgres 以启用以前版本的兼容性。我不是这方面的专家,但我认为有 some options here.
  2. 只需修改历史迁移脚本即可在新版本中使用。这将意味着您不能再忍受旧版本了,但这对您来说重要吗?我认为您在执行此操作后需要 运行 flyway 修复,因为 Flyway 会检测到文件已被篡改。
  3. 创建一组并行脚本,每个版本一个,将它们放在不同的文件夹中。然后使用flyway.locations选项根据target的版本指定不同的文件夹。