从特定版本开始 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 迁移的主要内容,如果未能解决你的问题,请参考以下文章
从版本 3 更新到 4 时,Flyway 更新不会迁移 schema_version 表
flywaydb中的数据库基线版本是啥。我可以使用它从特定版本及更高版本进行迁移吗?