前言:最近工作上遇到个问题,项目开发过程中,开发代码可以通过svn来版本控制,但数据库又该如何来管理呢?多个人接触数据库,当对表、字段或数据修改后,又怎么来同步呢?经过苦寻,发现了个叫flyway的开源项目:http://flywaydb.org/,java编写,官方的介绍就是我的初衷,岂能不心动?

官网是英文的,查了下居然没有中文文档,难道没有中国人用?

慢慢看了下官方文档,试着做了下,一次成功!(离开电脑,蹦达几下,继续坐回电脑)

自己写个小教程吧

1、将flyway-core-2.3.jar放到项目lib中,下载地址:http://flywaydb.org/getstarted/download.html

2、在src目录下建立保存sql版本文件的路径:src/db/migration,flyway默认查找路径,可以改,但没必要。

3、在sql版本文件路径中增加sql文件,命名规则,如:V1__2014_4_13.sql ,V开头+版本号+双下划线+描述,描述中可以有下划线,后缀为sql。别问能不能修改这个规则,否则,我咬你。

4、增加flyway的java类,有命令行工具,但还是java类用起来方便,如下:

package com.cms.flyway;

import java.io.IOException;

import java.util.Properties;

import com.googlecode.flyway.core.Flyway;

public class FlywayApp {

// 读取数据库配置参数

private static Properties config = new Properties();

static {

try {

config.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("activerecord.properties"));

} catch (IOException e) {

e.printStackTrace();

}

}

// 执行数据库版本升级

public static void migration() {

// Create the Flyway instance

Flyway flyway = new Flyway();

// Point it to the database

flyway.setDataSource(config.getProperty("com.et.ar.ActiveRecordBase.url"), config.getProperty("com.et.ar.ActiveRecordBase.username"), config.getProperty("com.et.ar.ActiveRecordBase.password"));

flyway.setInitOnMigrate(true);

// Start the migration

flyway.migrate();

}

}

5、在服务器启动的时候或者定时器 执行该类的migration()方法即可。

6、第一次执行会生成一个专门存放数据库schema_version的表

7、以后数据库有了新的改动,导出新版本sql文件(如:mysqldump -u -p databasename>/xx.sql)改为新版本命名文件放到db.migration路径下,flyway会自动帮你更新数据库版本的。

over!

flyway java_flyway中文教程相关推荐

  1. Angularjs中文教程

    Angularjs中文教程 http://docs.ngnice.com/guide posted on 2015-05-11 09:36 资江河畔 阅读(...) 评论(...) 编辑 收藏 转载于 ...

  2. 全网首发 | 第一个opencv_contrib扩展模块中文教程限时领取

    点击上方"小白学视觉",选择"星标"公众号 重磅干货,第一时间送达 OpenCV是学习计算机视觉的重要工具之一,然而多年以来,在深度学习的deBuff下,Ope ...

  3. 【好资源】全网第一份,OpenCV 4-Contrib扩展模块中文教程

    今天给大家分享一个优质的计算机视觉学习资源,帮助大家在使用OpenCV的道路上越走越远,目前资源已被翻译作者开源,提供了pdf版方便大家学习.此外,作者会实时维护资料的完整性. 重点说明:这份资源极有 ...

  4. Swift中文教程(五)--对象和类

    原文:Swift中文教程(五)--对象和类 Class 类 在Swift中可以用class关键字后跟类名创建一个类.在类里,一个属性的声明写法同一个常量或变量的声明写法一样,除非这个属性是在类的上下文 ...

  5. ArcGIS_系列中文教程下载

                                                        ArcGIS_系列中文教程 如链接有问题请在留言中说明ArcGIS9中文版系列丛书PDF(原书一 ...

  6. 苹果Swift语言中文教程资源汇总

    苹果swift语言中文教程(零)搭配环境以及代码运行成功http://vjiazhi.com/kaifa/1014.html 苹果Swift语言中文教程(一)基础数据类型 http://vjiazhi ...

  7. letswave7中文教程3:脑电数据预处理-ICA去除伪影

    目录 ICA/BSS的理论与模型 第5步:计算ICA矩阵 第6步:识别伪影成分 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 ICA/BSS的理论与模型 ...

  8. letswave7中文教程2:脑电数据预处理-通道位置分配

    目录 第1步:通道位置分配 第2步:删除不良通道 第3步:滤波处理 第4步:坏电极插值 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 原始的脑电图信号是有 ...

  9. letswave7中文教程1:软件安装与脑电数据导入

    目录 1.安装 2.数据集介绍 3. 数据集导入 4.数据集检查 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 Letswave是一款非常好用的神经生理信 ...

  10. ERPLAB中文教程:高级EvenList选项

    目录 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 前面我们介绍了使用ERPLAB来分析脑电数据的第一步: 安装ERPLAB并添加通道<ERPLAB ...

最新文章

  1. SpringBoot上传文件大小限制
  2. 论文笔记 DNorm: disease name normalization with pairwise learning to rank
  3. 结构和类中字段的初始化以及用new来操作他们的构造函数
  4. Spring Shedule Task之注解实现 (两次启动Schedule Task 的解决方案)
  5. truncate python是删除文件内容吗_在Python中操作文件之truncate()方法的使用教程
  6. python中data.find_all爬取网站为空列表_利用Golang快速爬取盗版网站的整套音频
  7. ceph12.0.1的源码编译安装
  8. Linux epoll模型详解及源码分析
  9. 使用VST机架效果进行人声处理的顺序及相关插件
  10. 浙江大学计算机系自主招生题目,浙江大学自主招生试题
  11. Unity 扫描 二维码
  12. 【推荐】超级好用的打印插件Lodop使用笔记 动态赋值 打印模板解决方案
  13. 计算机如何安装无线网络适配器,小编教你电脑无线网卡驱动怎么安装
  14. 【论文阅读】AProNet: Detecting objects with precise orientation from aerial images
  15. 在使用html5的video标签播放视频时为何只有声音却没有图像
  16. selenium 模拟登陆豆瓣,爬取武林外传的短评
  17. Mysql第二章习题
  18. 如何高效使用Micropython看你喜欢看的视频?【下】(生成图片帧和WIFI传输播放)
  19. 使用jedis连接redis,关闭连接问题
  20. iOS 设置自定义间距的文字下划线

热门文章

  1. blog增量追加ing~(1/10阶段)ctf oj
  2. 用计算机制作演示文稿教案博客,信息技术:《制作演示文稿的一般过程》教案...
  3. Win11怎么把手机投屏到电脑上?
  4. python绘制每日的时序图_GitHub - wavous/Python-100-Days: Python - 100天从新手到大师
  5. html5 video断点续播,vue-video-player 断点续播的实现
  6. 置信区间的临界值_在进行区间估计时,若要求置信水平为95%,则相应的临界值为...
  7. 用JavaScript实现烟花效果
  8. “极狐•华为HI版本”的尴尬与困境
  9. JVM虚拟机相关知识
  10. postgreSql版的occurs函数