Spring Boot 中使用 Flyway 进行数据库迁移 | AI生成和翻译

Home 2025.02

以下是关于如何在 Spring Boot 应用中使用 Flyway 管理数据库架构的简明实用指南:


什么是 Flyway?

Flyway 是一款数据库迁移工具,可帮助您对数据库架构进行版本控制。它通过按特定顺序执行 SQL 脚本(迁移)来演进数据库,非常适合需要保持一致性和自动化的 Spring Boot 项目。


步骤 1:添加 Flyway 依赖

首先将 Flyway 添加到项目中。如果使用 Maven,请更新 pom.xml

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
</dependency>

如果使用 Gradle,请在 build.gradle 中添加:

implementation 'org.flywaydb:flyway-core'

这会将 Flyway 引入您的 Spring Boot 应用。


步骤 2:配置数据库连接

Flyway 需要知道要管理哪个数据库。在 application.properties(或 application.yml)中定义数据库连接。例如使用 PostgreSQL:

spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword

Spring Boot 会自动配置 Flyway 使用此数据源,无需额外设置。


步骤 3:创建迁移脚本

Flyway 使用版本化 SQL 脚本更新数据库。将这些脚本放置在默认目录:src/main/resources/db/migration。每个脚本必须遵循命名模式:V<版本号>__<描述>.sql。版本号可确保迁移按顺序执行。

例如创建名为 V1__create_users_table.sql 的文件:

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL
);

将其保存至 src/main/resources/db/migration


步骤 4:运行应用程序

启动 Spring Boot 应用(例如通过 mvn spring-boot:run 或 IDE)。Flyway 将自动:

得益于 Spring Boot 的集成,这一切在启动时自动完成,无需手动干预。


步骤 5:自定义 Flyway(可选)

您可以通过 application.properties 中的属性调整 Flyway 行为。常用选项包括:

spring.flyway.locations=classpath:db/migration  # 脚本查找路径
spring.flyway.baseline-on-migrate=true          # 处理现有数据库
spring.flyway.enabled=true                      # 启用/禁用 Flyway

这些配置可让您根据项目需求定制 Flyway。


高级功能

Flyway 不仅提供基础迁移:

请查阅 Flyway 官方文档 深入了解。


总结

在 Spring Boot 中使用 Flyway 只需四步:

  1. 添加 Flyway 依赖至项目
  2. application.properties 中配置数据库连接
  3. src/main/resources/db/migration 中编写版本化 SQL 脚本
  4. 启动应用——Flyway 将自动执行迁移

Flyway 通过版本控制和自动化简化了数据库架构管理,与 Spring Boot 流畅的开发体验完美契合。


Back Donate