You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Spring Profiles按prod/dev环境运行Flyway脚本及配置多环境脚本?

Flyway多环境迁移脚本配置方案

Flyway完全支持针对prod、dev等不同环境运行差异化的迁移脚本,同时也能实现公共脚本与环境专属脚本的分离执行,具体方案如下:

  • 区分环境运行不同脚本:核心通过Flyway的locations配置参数实现,结合环境专属的配置文件或环境变量,指定对应环境需要加载的脚本路径。
  • 创建dev专属脚本文件夹:可以单独创建如db/migration/dev的目录存放dev专属数据脚本,仅在dev环境的Flyway配置中添加该路径,prod环境配置则排除此路径,这样dev脚本只会在dev环境加载执行。
  • 公共脚本文件夹实现共用:建议创建db/migration/common作为公共脚本目录,将dev和prod共用的脚本放在这里。不管是dev还是prod环境,都把这个公共路径加入locations配置,公共脚本会和当前环境的专属脚本按文件名排序一同执行。

具体配置示例

dev环境配置文件(flyway-dev.properties)

flyway.locations=filesystem:db/migration/common,filesystem:db/migration/dev
flyway.url=jdbc:mysql://localhost:3306/dev_db
flyway.user=dev_user
flyway.password=dev_pass

prod环境配置文件(flyway-prod.properties)

flyway.locations=filesystem:db/migration/common
flyway.url=jdbc:mysql://prod-host:3306/prod_db
flyway.user=prod_user
flyway.password=prod_pass

执行命令示例

  • 运行dev环境迁移:
flyway -configFiles=flyway-dev.properties migrate
  • 运行prod环境迁移:
flyway -configFiles=flyway-prod.properties migrate

注意:所有迁移脚本需遵循Flyway的命名规范(如V1__Create_table.sql),版本号要统一规划,避免公共脚本与专属脚本的执行顺序混乱。

内容的提问来源于stack exchange,提问作者Mirza Adeel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:55:21