flyway中文教程

标签: flyway 文教 | 发表时间:2014-04-13 12:52 | 作者:shuzheng5201314
出处:http://www.iteye.com

前言:最近工作上遇到个问题,项目开发过程中,开发代码可以通过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!





已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [flyway 文教] 推荐:

flyway中文教程

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

flyway的使用

- - 行业应用 - ITeye博客
想到要管理数据库的版本,是在实际产品中遇到问题后想到的一种解决方案,当时各个环境的数据库乱作一团,没有任何一个人(开发、测试、维护人员)能够讲清楚当前环境下的数据库是哪个版本,与哪个版本的应用相匹配,如何升级到与新版本的应用相匹配. 想到管理数据库版本时,先是心底形成了一个初步的解决方案,大致是通过数据库中的某张表来记录数据库表结构的历次更新与对应版本,在每次数据库表结构调整时除了提供库表更新sql ,还必须提供更新记录与对应版本的sql ,以帮助维护数据库版本信息,并在遇到问题时提供相关的排查依据.

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

- - Java - 编程语言 - ITeye博客
转载自:http://kkuang.net/why-db-migration-tools-flyway/  . 为什么要使用DB migration tools. 我们可以想象,多位开发人员,多个数据库环境. 先前有用过mybatis中的migration,但经常出现莫名其名的异常,并且也不支持多条SQL在1个文件中.

Twitter Bootstrap 中文帮助文档/中文手册/中文教程

- - 博客园_梦想天空
   Bootstrap 是基于 HTML,CSS,JavaScript 的简洁灵活的流行前端框架及交互组件集,由微博的先驱 Twitter 在2011年8月开源的整套前端解决解决方案. Bootstrap 有非常完备和详尽的使用帮助文档,热心的 @TV来客开发者 翻译成了中文,讨厌英文的朋友有福了.

Advanced Onion Router v0.3.0.20 最新中文图文教程

- - 细节的力量
Advanced Onion Router( AdvOR)是由hexhub开发的一个 tor实用的组合工具,经过作者不断完善,现在的AdvOR是目前tor组合工具中很好的工具之一, 美博园一直跟踪其最新版发布,本文是美博园根据多年使用结合最新版写出的突出主要功能的详细中文图文教程,AdvOR软件中自带有详细的英文教程:AdvOR\Help\AdvOR.html.

新手教程:wordpress博客安装图文教导

- - CSDN博客互联网推荐文章
每一个建立博客的新朋友,当准备好域名和主机后,不知道怎么安装博客,我刚建立昆明SEO的时候,也费了很多时间,终于搭建成功,下面是我一步一步实战得来的总结. 第一步:域名解析,根据域名注册商不同,解析操作上会有些细微的差别,总体来说,域名解析的时候只要添加一个A纪录就可以了,然后填上你主机的IP. 域名生效的时间一般在24小时之内生效,判断域名有没有生效的方法如下:开始,运行,然后输入”cmd”,最后输入”ping www.***.net“命令,ping与域名中间有一个空格,如果发现上面的IP和你主机的IP一样,就说明已经生效了.

一文教你挖掘用户评论典型意见 - JSong - 博客园

- -
2017-11-01  宋老师  JSong. 用户体验的工作可以说是用户需求和用户认知的分析. 而消费者的声音是其中很重要的一环,它包含了用户对产品的评论,不管是好的坏的,都将对我们产品的改进和迭代有帮助. 另外任何事情都要考虑金钱成本和人力成本,因此我希望能通过机器学习的算法来辅助分析,对用户的评论数据进行提炼和洞察.

【WIFI全攻略】教你如何用电脑给iphone共享无线上网![新手图文教程XP和WIN7]

- linchanx - Starming星光社最新更新
★★★★★★★★★★★★★★★★★★WIFI全攻略★★★★★★★★★★★★★★★★★★★. Wi-Fi是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术. Wi-Fi是一个无线网路通信技术的品牌,由Wi-Fi联盟(Wi-Fi Alliance)所持有. 目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性.

从周慧敏、倪震联合声明看香港与大陆语文教育的差距

- - 白板报
【事件背景】2008年12月7日凌晨,倪震被香港《东方新地》杂志记者摄得在中环兰桂芳夜店热吻一名年轻中国内地女子张茆后,同月11日傍晚与周慧敏宣布分手,并双双以文稿发表联合声明. 令人欣慰的是,两人不久在同月18日又宣布与周结婚. 倪震与周慧敏并于2009年1月6日在好友见证结成夫妻. 2008年12月11日《周慧敏倪震的聯合聲明》.

阿根廷COM.AR免费顶级域名(实体,负责人,DNS,域名)拥有你域名全部的权限申请图文教程

- simplove - iGFW
本图文教程共分四篇来简易解说,全部流程大概需要1周左右时间全部成功. 域名成功演示:http://kuaibo.com.ar  http://qvod.com.ar. 第一篇:拥有你域名的特权(实体)申请篇. 第二篇:拥有你域名的特权(负责人)申请篇. 第三篇:拥有你域名的特权(DNS)申请篇. 第四篇:拥有你域名的特权(COM.AR域名)申请篇.