基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
使用 Flyway 集成 OB Cloud 数据库实现版本管理
更新时间:2026-06-17 11:20:24
Flyway 是一款开源的数据库版本管理工具,通过创建历史记录表跟踪数据库状态,实现自动化迁移。本文介绍如何在 OB Cloud 中集成 Flyway,实现 Schema 变更的自动化部署与版本追溯。
前提条件
您已注册 OB Cloud 云数据库账号,并创建集群实例和租户(MySQL 或 Oracle 兼容模式租户)。
Flyway 服务器 IP 已加入 OB Cloud 实例白名单。详情请参见 设置租户白名单分组。
您已获取 OB Cloud 数据库的连接串。详情请参见 获取连接串(MySQL 兼容模式租户)、获取连接串(Oracle 兼容模式租户)。
集成配置
MySQL 兼容模式租户
OB Cloud 的 MySQL 兼容模式租户建议使用 flyway-core 10.0.0 或更高版本,并依赖 mysql-connector-java 和 flyway-database-oceanbase 组件。如需支持更早期版本的 Flyway,请参考如下表格:
| OceanBase 版本 | Flyway 版本 | 备注 |
|---|---|---|
| ≥ 4.2.5 | < 10.x | 请联系 OB Cloud 技术支持 |
| < 4.2.5 | < 9.x | 暂不支持 |
| 9.x | 请联系 OB Cloud 技术支持 |
配置 Maven 依赖。
在项目的
pom.xml文件中添加以下依赖项:<dependencies> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>11.3.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-database-oceanbase</artifactId> <version>10.7.2</version> </dependency> </dependencies>创建迁移脚本。
在 Maven 项目的
resources目录下创建db/migration文件夹,并在其中创建以下两个 SQL 文件:文件一:V1_1__create_person_table.sql
CREATE TABLE person ( id INT NOT NULL, name VARCHAR(20) NOT NULL );文件二:V2_1__add_person_table.sql
INSERT INTO person (id, name) VALUES (1, 'apple');
编写 Java 测试类。
创建 Java 类 FlywayTest,使用 Flyway 进行数据库迁移。请根据前提条件中获取的连接串修改代码中的数据库连接信息。
public class FlywayTest { public static void main(String[] args) { String url = "jdbc:mysql://host:port/dbName"; String user = "username"; String password = "password"; Flyway flyway = Flyway.configure() .dataSource(url, user, password) .load(); flyway.baseline(); flyway.migrate(); } }参数说明:
host:OB Cloud 云数据库连接地址。port:OB Cloud 云数据库连接端口。dbName:需要访问的数据库名称。username:数据库账号名称。password:账户密码。
执行测试。
运行 FlywayTest 之后,可以在 OB Cloud 数据库中看到创建的 person 表及插入的数据。

Oracle 兼容模式租户
OB Cloud 的 Oracle 兼容模式租户要求 flyway-core 10.9.0 或更高版本,并需要使用 oceanbase-client、flyway-mysql 以及 flyway-database-oceanbase 组件。
说明
可以在 GitHub 仓库获取 flyway-database-oceanbase 组件。
配置 Maven 依赖。
在项目的
pom.xml文件中添加以下依赖项:<dependencies> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>10.9.0</version> </dependency> <dependency> <groupId>com.oceanbase</groupId> <artifactId>oceanbase-client</artifactId> <version>2.4.11</version> </dependency> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-mysql</artifactId> <version>10.7.0</version> </dependency> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-database-oceanbase</artifactId> <version>10.16.1</version> <scope>system</scope> <systemPath>/path/to/your/flyway-database-oceanbase-10.16.1.jar</systemPath> </dependency> </dependencies>创建迁移脚本。
在 Maven 项目的
resources目录下创建db/migration文件夹,并在其中创建以下两个 SQL 文件:文件一:V1_1__create_person_table.sql
CREATE TABLE person ( id INT NOT NULL, name VARCHAR(20) NOT NULL );文件二:V2_1__add_person_table.sql
INSERT INTO person (id, name) VALUES (1, 'apple');
编写 Java 测试类。
创建 Java 类 FlywayTest,使用 Flyway 进行数据库迁移。请根据前提条件中获取的连接串修改代码中的数据库连接信息。
public class FlywayTest { public static void main(String[] args) { String url = "jdbc:oceanbase://host:port/"; String user = "username"; String password = "password"; Flyway flyway = Flyway.configure() .dataSource(url, user, password) .load(); flyway.baseline(); flyway.migrate(); } }参数说明:
host:OB Cloud 云数据库连接地址。port:OB Cloud 云数据库连接端口。username:数据库账号名称。password:账户密码。
执行测试。
运行 FlywayTest 之后,可以在 OB Cloud 数据库中看到创建的 person 表及插入的数据。
