Flyway 入门使用指南(多环境配置版)

Flyway 入门使用指南(多环境配置版)


1️⃣ 安装与准备

1.1 下载与安装 Flyway

  • 下载地址:Flyway Desktop

  • 安装完成后,包含:

    • Flyway Desktop GUI
    • Flyway CLI

1.2 数据库准备

  • 创建开发和生产数据库:
CREATE DATABASE erp_dev;
CREATE DATABASE erp_prod;

2️⃣ 创建 Flyway 项目

2.1 项目目录结构

D:\Data\flyway\erp/
  ├─ sql/                
  │    └─ V1__init.sql   
  ├─ conf/               
  │    ├─ flyway-dev.conf   # 开发环境配置
  │    └─ flyway-prod.conf  # 生产环境配置
  └─ .flyway/            

2.2 配置 Flyway(按环境)

开发环境配置:conf/flyway-dev.conf
# SQL 脚本目录
flyway.locations=filesystem:sql

# 数据库连接
flyway.url=jdbc:mysql://localhost:3306/erp_dev
flyway.user=root
flyway.password=你的密码
生产环境配置:conf/flyway-prod.conf
# SQL 脚本目录
flyway.locations=filesystem:sql

# 数据库连接
flyway.url=jdbc:mysql://localhost:3306/erp_prod
flyway.user=root
flyway.password=你的密码

每个环境单独维护配置文件,避免误操作生产数据库。


2.3 使用命令指定环境

# 开发环境
flyway -configFiles=conf/flyway-dev.conf info
flyway -configFiles=conf/flyway-dev.conf migrate

# 生产环境
flyway -configFiles=conf/flyway-prod.conf info
flyway -configFiles=conf/flyway-prod.conf migrate

3️⃣ 编写迁移脚本

3.1 初始化数据库

sql/V1__init.sql 示例:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

3.2 新增字段迁移

sql/V2__add_age_to_users.sql 示例:

ALTER TABLE users ADD COLUMN age INT;

4️⃣ 执行迁移

4.1 查看迁移状态

flyway -configFiles=conf/flyway-dev.conf info
  • Applied:已应用
  • Pending:待执行
  • Current version:当前数据库版本

4.2 执行迁移

flyway -configFiles=conf/flyway-dev.conf migrate
  • Flyway 自动执行 Pending 的迁移
  • 更新 flyway_schema_history

5️⃣ 切换环境

  • 开发环境-configFiles=conf/flyway-dev.conf
  • 生产环境-configFiles=conf/flyway-prod.conf

使用不同配置文件即可安全切换环境,保证配置独立。


6️⃣ 自动生成初始化 SQL(社区版替代方案)

# 导出表结构
mysqldump -u root -p --no-data erp_dev > V1__init.sql

# 导出表结构 + 数据
mysqldump -u root -p erp_dev > V1__init.sql
  • 放入 sql/ 目录,Flyway 执行即可

7️⃣ 常用命令速查

命令功能
flyway info查看迁移状态
flyway migrate执行所有 Pending 迁移
flyway clean清空数据库(仅开发环境)
flyway validate校验迁移文件和数据库版本一致性
flyway baseline给已有数据库打基线(已有表不重复执行历史迁移)

8️⃣ 注意事项

  1. 每次数据库修改都必须创建新迁移文件,不可修改已应用脚本
  2. 先在开发环境验证通过,再迁移到生产环境
  3. 社区版 Flyway 不支持自动生成迁移,企业版可用 Autopilot
  4. 可在 CI/CD 流水线中调用 CLI,实现自动化部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值