---
title: "使用 Flyway 集成 OceanBase 数据库实现版本管理 - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: 使用 Flyway 集成 OceanBase 数据库实现版本管理 Flyway 是一款开源的数据库版本管理工具，通过创建历史记录表跟踪数据库状态，实现自动化迁移。本文介绍如何在 OceanBase 数据库中集成 Flyway，实现 Schema 变更的自动化部署与版本追溯。 前提条件 您已完成部署 OceanBase…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.5 LTS

# 使用 Flyway 集成 OceanBase 数据库实现版本管理

更新时间：2026-04-09 14:12:04

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.5/zh-CN/680.ecological-integration/300.schema-evolution/300.flyway.md)  

Flyway 是一款开源的数据库版本管理工具，通过创建历史记录表跟踪数据库状态，实现自动化迁移。本文介绍如何在 OceanBase 数据库中集成 Flyway，实现 Schema 变更的自动化部署与版本追溯。

## 前提条件

您已完成部署 OceanBase 数据库并且创建了用户租户。创建用户租户的详细信息，参见 [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013128)。

## 操作步骤

### 步骤一：获取数据库连接信息

联系 OceanBase 数据库部署人员或者管理员获取相应的数据库连接串，例如：

```shell
obclient -h$host -P$port -u$user_name -p$password -D$database_name

```

**参数说明：**

- `$host`：提供 OceanBase 数据库连接 IP。OceanBase 数据库代理（OceanBase Database Proxy，ODP）连接方式使用的是一个 ODP 地址；直连方式使用的是 OBServer 节点的 IP 地址。
 - `$port`：提供 OceanBase 数据库连接端口。ODP 连接的方式默认是 `2883`，在部署 ODP 时可自定义；直连方式默认是 `2881`，在部署 OceanBase 数据库时可自定义。
 - `$database_name`：需要访问的数据库名称。

  #### 注意

  连接租户的用户需要拥有该数据库的 `CREATE`、`INSERT`、`DROP` 和 `SELECT` 权限。更多有关用户权限的信息，请参见 [MySQL 模式下的权限分类](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016100)。
 - `$user_name`：提供租户的连接账户。ODP 连接的常用格式：`用户名@租户名#集群名` 或者 `集群名:租户名:用户名`；直连方式格式：`用户名@租户名`。
 - `$password`：提供账户密码。

更多连接串的信息，请参见 [通过 OBClient 连接 OceanBase 租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013251)。

### 步骤二：集成配置

#### MySQL 兼容模式租户

OceanBase 数据库的 MySQL 兼容模式租户建议使用 flyway-core 10.0.0 或更高版本，并依赖 mysql-connector-java 和 flyway-database-oceanbase 组件。

更低版本的 Flyway，请参考以下表格：

| OceanBase 数据库版本 | Flyway 版本 | 备注 |
| --- | --- | --- |
| V4.2.5 及之后版本 | < 10.x | 请联系 OceanBase 数据库技术支持 |
| V4.2.5 之前版本 | < 9.x | 暂不支持 |
| V4.2.5 之前版本 | 9.x | 请联系 OceanBase 数据库技术支持 |

1. 配置 Maven 依赖。

   在项目的 `pom.xml` 文件中添加以下依赖项：

   ```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>

   ```
 2. 创建迁移脚本。

   在 Maven 项目的 `resources` 目录下创建 `db/migration` 文件夹，并在其中创建以下两个 SQL 文件：

      - 文件一：V1_1__create_person_table.sql

       ```sql
       CREATE TABLE person (
           id INT NOT NULL,
           name VARCHAR(20) NOT NULL
       );

       ```
      - 文件二：V2_1__add_person_table.sql

       ```sql
       INSERT INTO person (id, name)
       VALUES (1, 'apple');

       ```
 3. 编写 Java 测试类。

   创建 Java 类 FlywayTest，使用 Flyway 进行数据库迁移。请根据前提条件中获取的连接串修改代码中的数据库连接信息。

   ```java
   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`：OceanBase 数据库连接地址。
      - `port`：OceanBase 数据库连接端口。
      - `dbName`：需要访问的数据库名称。
      - `username`：数据库账号名称。
      - `password`：账户密码。
 4. 执行测试。

   运行 FlywayTest 之后，可以在 OceanBase 数据库中看到创建的 person 表及插入的数据。

   ![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/cloud/25V1/800.integration/flyway/1.png)

#### Oracle 兼容模式租户

OceanBase 数据库的 Oracle 兼容模式租户要求 flyway-core 10.9.0 或更高版本，并需要使用 oceanbase-client、flyway-mysql 以及 flyway-database-oceanbase 组件。

#### 说明

可从 [GitHub 下载](https://github.com/oceanbase/ecology-plugins/releases/download/1.0/flyway-database-oceanbase-10.16.1.jar) flyway-database-oceanbase 10.16.1 版本，其他版本请联系 OceanBase 数据库技术支持获取。

   ```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>

   ```java
   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`：OceanBase 数据库连接地址。
      - `port`：OceanBase 数据库连接端口。
      - `username`：数据库账号名称。
      - `password`：账户密码。
 4. 执行测试。

   ![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/cloud/25V1/800.integration/flyway/2.png)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
