时间:2021-07-01 10:21:17 帮助过:35人阅读
数据库迁移 在软件开发中,我们有svn、git这样的版本管理器帮我们管理源代码,我们可以很容的查看我们当前代码的版本,更新新版本代码、回滚到旧版本等等操作。如果我们不使用版本管理器进行源代码管理,维护代码将是一项十分痛苦的工作。 开发过程中,改变
数据库迁移
在软件开发中,我们有svn、git这样的版本管理器帮我们管理源代码,我们可以很容的查看我们当前代码的版本,更新新版本代码、回滚到旧版本等等操作。如果我们不使用版本管理器进行源代码管理,维护代码将是一项十分痛苦的工作。
开发过程中,改变的可能不仅仅是代码本身,随着业务需求的改变、技术设计的改变,我们数据库的schema也可能发生改变,数据库表中的某些值也可能发生改变。如果数据库相关的信息没有“版本管理”会出现什么问题呢?
假设我们项目中,有多个dev同时进行开发,在Build Pipeline上,有分为了Dev、CI、Test、Production这么几个不同的环境:
Java中,我们也有一些可选的工具。Flyway就是其中挺不错的一个http://flywaydb.org/
类似Flyway这样的工具基本原理都非常简单,数据库版本的升级都是通过SQL或者Java代码来完成。
每执行一次升级或者更新,数据库中就会把这个操作的版本号记录下来。这样就可以非常容易的判断出,当前数据库处于哪个版本。
使用Flyway
Flyway的官方文档已经做得比较详细了,大家照着做做,一下就明白了。
Flyway First Step: http://flywaydb.org/getstarted/firststeps/api.html
for Java