山西住房建设部网站,常熟网站优化,制作个人网页费用,南宁建企业网站文章目录 什么是flyway简介为什么要使用flyway 流程介绍整合springboot添加pom文件配置flyway向resource/db/migration添加sql文件 注意事项1. 迁移报错2. 迁移顺序 参考 什么是flyway
简介
为什么要使用flyway
我们在开发时往往会有这样一种情况#xff1a;
进行软件开发… 文章目录 什么是flyway简介为什么要使用flyway 流程介绍整合springboot添加pom文件配置flyway向resource/db/migration添加sql文件 注意事项1. 迁移报错2. 迁移顺序 参考 什么是flyway
简介
为什么要使用flyway
我们在开发时往往会有这样一种情况
进行软件开发时在开发环境修改数据库完成功能开发。当我们要部署到生产环境上时需要将生产环境上的数据库手动修改为和开发环境相同的结构。但是这样的过程是由开发人员手动修改。这样就会产生忘记修改、修改结构与开发环境不一致等问题。
那么为了解决这样的问题我们引入了flyway这样的数据库版本控制工具。
其作用与git类似git是针对整个项目文件进行版本控制 而flyway是对数据库进行版本控制。
流程介绍 1Flyway在第一次执行时会创建一个默认名为flyway_schema_history的历史记录表。这张表会用来跟踪或记录数据库的状态 2每次项目启动时都会自动扫描脚本目录 classpath:db/migration下的脚本文件通过查询flyway_schema_history来判断是否为新增文件从而判断是否进行迁移 3如果历史记录表不存在则新建历史记录表 4如果是一次性执行脚本V按版本号从小到大执行迁移脚本与当前历史表中的版本号做对比大于当前版本号的脚本才会被执行迁移 5如果是可重复执行脚本R检查脚本是否有变动有变动的可重复脚本才会被执行迁移R的命名不带版本号 flyway_schema_history结构如下
整合springboot
添加pom文件
dependencygroupIdorg.flywaydb/groupIdartifactIdflyway-mysql/artifactIdversion10.19.0/version
/dependency配置flyway flyway:# 是否启用enabled: true# 编码格式encoding: UTF-8# 迁移sql脚本文件存放路径映射到resource/db/migrationlocations: classpath:db/migration# 迁移sql脚本文件名称的前缀默认Vsql-migration-prefix: V# 迁移sql脚本文件名称的分隔符默认2个下划线__sql-migration-separator: __# 迁移sql脚本文件名称的后缀默认sqlsql-migration-suffixes: .sql# 迁移时是否进行校验默认truevalidate-on-migrate: true# 当迁移发现数据库非空且存在没有元数据的表时自动执行基准迁移新建schema_version表baseline-on-migrate: true
向resource/db/migration添加sql文件
命名规则按照配置文件中设定的
例如V1.0.0__init_database.sql注意第一个V1.0.0后面的下划线为两个下划线
注意事项
注意以下事项否则均会出现报错 已经执行过的迁移文件(V)不能修改。 版本号不能相同 删除已经执行过的迁移
1. 迁移报错
删除flyway_schema_history中的脚本执行记录否则就会报错
2. 迁移顺序
以V为前缀的单次迁移文件先进行执行接着执行以R为前缀的迁移文件
在这个过程中均按照版本号大小从小往大执行
任意版本出现错误之后的文件均不执行
参考
Flyway详解使用说明及避坑指南、一文搞懂flyway-CSDN博客
数据库版本管理框架-Flyway从入门到精通_wx665832b7aafe8的技术博客_51CTO博客