文章目录
什么是flyway
简介
为什么要使用flyway
我们在开发时往往会有这样一种情况:
进行软件开发时,在开发环境修改数据库,完成功能开发。当我们要部署到生产环境上时,需要将生产环境上的数据库手动修改为和开发环境相同的结构。但是这样的过程是由开发人员手动修改。这样就会产生:忘记修改、修改结构与开发环境不一致等问题。
那么为了解决这样的问题,我们引入了flyway这样的数据库版本控制工具。
其作用与git类似,git是针对整个项目文件进行版本控制, 而flyway是对数据库进行版本控制。
流程介绍
1)Flyway在第一次执行时,会创建一个默认名为flyway_schema_history的历史记录表。这张表会用来跟踪或记录数据库的状态
2)每次项目启动时都会自动扫描脚本目录 classpath:db/migration下的脚本文件,通过查询flyway_schema_history来判断是否为新增文件,从而判断是否进行迁移
3)如果历史记录表不存在,则新建历史记录表;
4)如果是一次性执行脚本(V),按版本号从小到大执行迁移脚本,与当前历史表中的版本号做对比,大于当前版本号的脚本才会被执行迁移;
5)如果是可重复执行脚本(R),检查脚本是否有变动,有变动的可重复脚本才会被执行迁移,R的命名不带版本号
flyway_