如果在内存 DB 中使用 H2,则 Flyway 从版本 1 开始

Posted

技术标签:

【中文标题】如果在内存 DB 中使用 H2,则 Flyway 从版本 1 开始【英文标题】:Flyway start with version 1 if using H2 in memory DB 【发布时间】:2020-11-21 03:13:15 【问题描述】:

使用 Flyway 4.0.1 H2 1.3 baselineOnMigrate=true。当我使用 H2:mem 时,flyway 从他的元数据表中的版本 1 开始。它应该以空版本开始。当我使用磁盘数据库时,这并没有发生。有什么想法吗?

【问题讨论】:

【参考方案1】:

这是因为 DB 是从不同的类加载器访问的。每个类加载器都有自己的数据库。我需要使用 TCP 连接。详情:Local H2 Server-Client connection with DB running in memory

【讨论】:

以上是关于如果在内存 DB 中使用 H2,则 Flyway 从版本 1 开始的主要内容,如果未能解决你的问题,请参考以下文章

如何在spring boot中创建H2+flyway测试数据库?

使用flyway在不同db之间迁移

H2 和 Oracle 兼容性问题

Flyway 在 sbt 中找不到我的迁移文件

如何找出 H2 DB 在内存中运行

H2DB:使用 AND 条件导致本地内存出错