一.引言来
在软件项目开发工程中,一般来说项目都是几个开发人员齐头并进的,常常遇到的事情是,大家都同时提交数据库表修改语句后,并不告知其它人,或者几个开发人员同时修改一个表结构,导致其他人运行项目出错。
还有在项目上线运行过程中,常常会因为管理数据库表结构或者表数据版本而发愁,甚至有的时候还不得不为生产数据做迁移操作。
以上的问题,我们一般的操作都是约定+脚本,但效率不高,并且常常会因为版本冲突,不得不手动merge。这个时候一个敏捷工具,用于数据库的移植的Flyway应用而生,它的主要用于在你的应用版本不断升级的同时,升级你的数据库结构和里面的数据。
二、介绍来
1. Flyway 的特色
Flyway 大受欢迎是由于它具备如下优势:简单 很是容易安装和学习,同时迁移的方式也很容易被开发者接受。
专注 专一于用作数据库迁移、版本控制而并无其它反作用。
强大 专为连续交付而设计,让Flyway在应用程序启动时迁移数据库。
2. Flyway 的工作机制
Flyway 须要在 DB 中先建立一个 metadata 表 (缺省表名为 flyway_schema_history), 在该表中保存着每次 migration (迁移)的记录, 记录包含 migration 脚本的版本号和 SQL 脚本的 checksum 值。下图表示了多个数据库版本。
对应的 metadata 表记录:springinstalled_rankversiondescriptiontypescriptchecksuminstalled_byinstalled_onexecu