Java基础学习总结(183)—— Flyway 在项目中迁移数据实践

Posted 科技D人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础学习总结(183)—— Flyway 在项目中迁移数据实践相关的知识,希望对你有一定的参考价值。

一、问题产生

项目在多环境迭代开发过程中,数据库的表结构不断变更,在部署时,往往会出现数据库表结构未及时变更导致出现问题,耗费在表结构上的时间相当多,上线过程持续痛苦,代码有 GIT/SVN 来控制,数据库中的表版本也可以做到版本控制,本文讲解通过 flyway 的方式来管理数据库版本变动。一个项目单个环境迭代开发的过程中,对于数据库表的修改 DDL,可以通过版本控制工具一起进行控制。只需要在项目上线之前,人工执行新增的 DDL 即可,DDL 的版本是与当前项目迭代版本一致,细致点不至于出现问题。对于偏企业服务的公司而言,同一个项目会同时部署到多套环境当中。随着项目迭代进行,不同环境的项目版本可能并非是同步一致的,甚至因为有的环境需要定制化开发,出现同一个项目多个分支,代码也愈行愈远。于是在这种情况下,上线服务之前就很痛苦,要想起上线环境的当前表版本是多少,想不起来,就要对比线上库里的表,判断是否执行过了增量的 DDL,每个环境的增量 DDL 都可能是不同的,需要针对每个环境写不同的 DDL,发布时战战兢兢地生怕漏了执行哪个版本的 DDL 导致线上 Bug。那如何解决这种糟糕的情况呢?理想状态:项目启动时自动维护数据库版本到最新,不需要人工处理 DDL,避免出错。

二、Flyway 原理

Flyway 的原里是开发者将每个版本的 DDL 放到项目中,项目在新环境启动时,会自动创建一张表用于记录 DDL 的版本信息,随后自动执行未执行过的 DDL,同时将执行过的 DDL 信息存入元数据表中。下次再启动时,检测到执行过了,就不会重复执行。

三、Java 实践<

以上是关于Java基础学习总结(183)—— Flyway 在项目中迁移数据实践的主要内容,如果未能解决你的问题,请参考以下文章

Flyway 学习使用总结

Flyway 学习使用总结

Flyway 学习使用总结

Flyway 学习使用总结

[JAVA &#183; 0基础]:11.终结者-final

Java学习 · 初识 面向对象基础一