Flyway 是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。
flyway 其实就类似于代码的版本管理,能够在不同的代码状态下保证我们的数据库是与当前代码是匹配的。
举个例子:我们有一个服务软件,并且有多个客户在使用我们的服务。服务一直在不断的完善,那么不可避免的 我们会对数据库进行不断地修改,例如字段类型,索引,视图 ,触发器等等。但是由于各种原因,我们不可能所 有的客户都能同步更新,或者某些客户的许可或者各种问题导致我们必须对他的更新有所延迟。但是,我们的开发 工作必须持续,这就导致我们最新的代码对应的是最新的数据库结构,当我们把我们的最新代码更新到很久都没有 更新的客户那里的时候,会发现数据库结构已经无法满足我们现在的代码执行。这个时候,一般情况下我们会选择 手动执行SQL脚本来改变相关的数据库结构以满足我们的程序运行。这种复杂的人工操作难免会出现问题,当我们 执行顺序错了或者遗漏了某些脚本,那么这个问题查起来就相当痛苦了,如果我们需要维护的版本很多,那么这种 工作将会变得异常繁重。flyway就是专门解决这个问题的。只要我们把数据的相关改变变成普通的SQL,他 就可以自动帮我们管理这些变化。不管你切换到哪个版本的代码,他都能帮我们检查对应的数据库结构,如果有某些 脚本从未在这个数据库上执行,他会帮我们自动的执行并标记。所以不管我们要更新代码都哪个版本,再也不需要我 们手动去管理数据库的结构了,一切都交给flyway,我们只负责程序逻辑。
数据库里面的表 schema_version 是 flyway 对该数据库的管理标记,不要随便修改此表
Flyway点击此处访问官网
Mysql点击此处查看示例文档