java数据库版本控制_使用flyway对应用的数据库版本控制

转载自:http://kkuang.net/why-db-migration-tools-flyway/

be4f36db27a2130421031a0aa13fb49f.png

为什么要使用DB migration tools

我们可以想象,多位开发人员,多个数据库环境。

偶尔就出现:哎呀!集成环境的数据库忘记更新了。

为什么推荐flyway

简单,好用

先前有用过mybatis中的migration,但经常出现莫名其名的异常,并且也不支持多条SQL在1个文件中。

最开始在使用flyway时,没有downgrade。有些觉得奇怪,像mybatis的migration和rails中,都会支持。

后来想想,其实对数据库的downgrade真是要甚用(最好不用),会陷入麻烦,不清楚真实的版本变化。宁可重新写个script downgrade。

支持java调用及spring集成

这就能在应用程序中,直接进行管理。

我采用的方式,是根据web应用在不同的环境启动时,进行不同环境 db migration.

在往集成发布时,随tomcat执行数据库的版本同步。

具体的使用, flyway官方文档详细简洁,几下就轻松搞定。

跟spring集成

这也是非常非常的简化

/**

* 执行DbMigration

* 当应用服务启动时会自动执行

*

* User: 闷骚乔巴

* Date: 2014-12-02

*/

public class DbMigration {

private Log log = LogFactory.getLog(DbMigration.class);

private Flyway flyway;

@PostConstruct

public void run() {

log.info("[Start] DbMigration run .. ");

flyway.migrate();

log.info("[End] DbMigration run .. ");

}

public void setFlyway(Flyway flyway) {

this.flyway = flyway;

}

}

SQL Script 命名

migrate_naming_1.png

script 目录

flyway执行时,默认读取的目录是 classpath:/db/migration

我们项目中就放在 /resource/db/migration

文件名

SqlMigrationNaming.png

该文件名由:

* prefix: default: V (大写哦)

* version: 版本号,也可以使用大小版本组合的方式,小版本号用单 _区分

* separator: 分隔符,双下划线 __

* description: 描述(你懂得,必须要有意义)

* suffix: 后缀 default:  .sql

再也不用担心,各环境的数据库不一致了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值