从特定版本开始 Flyway 迁移

Posted

技术标签:

【中文标题】从特定版本开始 Flyway 迁移【英文标题】:Start Flyway migration from specific version 【发布时间】:2019-05-04 18:35:20 【问题描述】:

我尝试使用 flyway 进行迁移。我找到了这个选项

spring.flyway.target= # 迁移应该达到的目标版本 可以考虑。

但我需要设置开始迁移的版本。例如我需要从V3_foo.sql开始迁移

我可以吗?

简要说明我为什么需要它。我有一个包含数据的数据库。以前没有使用过迁移工具。一切都是手动完成的。现在我创建了一个init.sql 并将整个基础结构的创建放入其中。现在,当添加更改时,我将从版本 2 开始迁移。如果您需要在新的空数据库上运行 - 从版本 1 开始

【问题讨论】:

【参考方案1】:

Baseline 是您需要的 flyway 功能。

如果您的情况,baseline 您的数据库与 flyway.baselineVersion=2 将告诉 flyway 您的数据库已经是版本 2。任何后续的 flyway migrate 将只处理大于 2 的迁移。

注意:如果之前的迁移失败,可能需要先删除表flyway_schema_history

【讨论】:

是的,我已经阅读过它,但这个选项对我不起作用。 spring.flyway.locations=classpath:db/migration spring.flyway.baseline-version=2 spring.flyway.baseline-on-migrate=true - 我添加了这些配置。我有空的flyway_schema_history 表。当我启动服务器时出现错误 - Caused by: org.flywaydb.core.internal.sqlscript.FlywaySqlScriptException: Migration V1__Initial_version.sql failed 我等待 flayway 跳过 V1 并开始从 V2 迁移。但它从 V1 开始 在你的回答中写上flyway_schema_history 这个表是必要的,我会接受你的回答 @ip696 也许维修就可以完成这项工作...无论如何都会更新答案。

以上是关于从特定版本开始 Flyway 迁移的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 flyway 跳过特定的迁移?

从版本 3 更新到 4 时,Flyway 更新不会迁移 schema_version 表

flywaydb中的数据库基线版本是啥。我可以使用它从特定版本及更高版本进行迁移吗?

在 Flyway 的 Java 迁移文件中使用 JdbcTemplate 会导致依赖循环

Flyway 迁移更新架构

重试flyway失败的迁移