Flyway-数据库版本管理工具
简介
Flyway 是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本
在项目或产品中,很难一开始就把业务理清楚,把数据库表设计好,因此数据表也会在迭代周期不断迭代。在Java应用程序中使用Flyway,能快速有效地用于迭代数据库表结构,并保证部署到测试环境或生产环境时,数据表都是保持一致的
原理
- 项目启动,应用程序完成数据库连接池的建立后,Flyway自动运行
- 初次使用时,Flyway会创建一个
flyway_schema_history
表,用于记录sql脚本文件执行记录 - Flyway会扫描项目指定路径下(默认是
classpath:db/migration
)的所有sql脚本,与flyway_schema_history
表脚本执行记录比对- 脚本文件名在表记录中存在「script 字段」,代表已经执行过,比对checksum,校验一致,则通过。不一致,则报错
- 脚本文件名在表记录中不存在,代表没有执行过,则执行 SQL 脚本,并在执行记录表中插入执行记录
使用
- 初始数据库导出 SQL,作为初始版本脚本文件
V1.0.0__init_db.sql
- 每次增、删、改表和数据,都创建一个更新脚本文件
V1.1.0__update_tablename.sql
,提交 SVN - 「组员」更新 SVN 代码,重启应用后,自动更新本地数据库
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 王文哲的博客!