Flyway 是一个版本化数据库管理工具,用于跟踪、管理和应用数据库的变化。它非常适合在团队开发环境中使用,其中多个人员可能会在数据库结构进行更改。Flyway 通过版本控制可以帮助你确保所有人都在相同版本的数据库上工作,这有利于常规的开发和部署管道。
下载和安装: 访问 Flyway 官网下载并安装合适版本。
配置: 在项目中创建flyway.conf
配置文件,设置数据库的URL、用户和密码等信息。
创建迁移脚本: 使用标准的SQL创建迁移脚本,并根据约定的命名规则(如V1__Create_person_table.sql
)存放在资源文件夹中。
运行迁移: 使用Flyway命令(migrate
)从命令行运行迁移。如果使用Spring Boot,它会在应用程序启动时自动执行迁移。
检查状态: 使用info
命令查看迁移的历史和当前状态。
回滚: 如果需要,可以使用undo
命令(商业版特性)回滚到之前的版本。
使用Flyway时,务必要记住数据库迁移和修改是一个严肃的任务,一旦迁移到生产环境,就会直接影响数据的完整性和应用程序的运行。因此,通常建议首先在开发和测试环境中执行和验证数据库迁移。
完整、系统地学习和实施Flyway,可以极大地提升数据库管理的效率和安全性,尤其是在多人合作和自动部署流程中。
// flyway
implementation 'org.springframework.boot:spring-boot-autoconfigure'
implementation 'org.flywaydb:flyway-core'
application.yml
里新增flyway配置spring:
flyway:
enabled: true # 是否开启使用,默认开启
schemas: public
encoding: UTF-8
locations: classpath:db/migration
sql-migration-prefix: V # 前缀
sql-migration-separator: __ # 版本号与名称的分隔符
sql-migration-suffixes: .sql # 后缀
table: flyway_schema_history
baseline-on-migrate: true # 是否在应用迁移脚本之前自动执行基线迁移,默认值是 false
validate-on-migrate: true # 是否在合并时开启校验
baseline-version: 2.0.1.0 # 基线版本,等于低于这个版本,不校验,默认为1
flyway_schema_history
,并按照版本顺序执行SQL,进行表变动baseline-version
参数进行版本更新