flyway java_flyway中文教程
前言:最近工作上遇到个问题,项目开发过程中,开发代码可以通过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中文教程相关推荐
- Angularjs中文教程
Angularjs中文教程 http://docs.ngnice.com/guide posted on 2015-05-11 09:36 资江河畔 阅读(...) 评论(...) 编辑 收藏 转载于 ...
- 全网首发 | 第一个opencv_contrib扩展模块中文教程限时领取
点击上方"小白学视觉",选择"星标"公众号 重磅干货,第一时间送达 OpenCV是学习计算机视觉的重要工具之一,然而多年以来,在深度学习的deBuff下,Ope ...
- 【好资源】全网第一份,OpenCV 4-Contrib扩展模块中文教程
今天给大家分享一个优质的计算机视觉学习资源,帮助大家在使用OpenCV的道路上越走越远,目前资源已被翻译作者开源,提供了pdf版方便大家学习.此外,作者会实时维护资料的完整性. 重点说明:这份资源极有 ...
- Swift中文教程(五)--对象和类
原文:Swift中文教程(五)--对象和类 Class 类 在Swift中可以用class关键字后跟类名创建一个类.在类里,一个属性的声明写法同一个常量或变量的声明写法一样,除非这个属性是在类的上下文 ...
- ArcGIS_系列中文教程下载
ArcGIS_系列中文教程 如链接有问题请在留言中说明ArcGIS9中文版系列丛书PDF(原书一 ...
- 苹果Swift语言中文教程资源汇总
苹果swift语言中文教程(零)搭配环境以及代码运行成功http://vjiazhi.com/kaifa/1014.html 苹果Swift语言中文教程(一)基础数据类型 http://vjiazhi ...
- letswave7中文教程3:脑电数据预处理-ICA去除伪影
目录 ICA/BSS的理论与模型 第5步:计算ICA矩阵 第6步:识别伪影成分 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 ICA/BSS的理论与模型 ...
- letswave7中文教程2:脑电数据预处理-通道位置分配
目录 第1步:通道位置分配 第2步:删除不良通道 第3步:滤波处理 第4步:坏电极插值 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 原始的脑电图信号是有 ...
- letswave7中文教程1:软件安装与脑电数据导入
目录 1.安装 2.数据集介绍 3. 数据集导入 4.数据集检查 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 Letswave是一款非常好用的神经生理信 ...
- ERPLAB中文教程:高级EvenList选项
目录 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 前面我们介绍了使用ERPLAB来分析脑电数据的第一步: 安装ERPLAB并添加通道<ERPLAB ...
最新文章
- SpringBoot上传文件大小限制
- 论文笔记 DNorm: disease name normalization with pairwise learning to rank
- 结构和类中字段的初始化以及用new来操作他们的构造函数
- Spring Shedule Task之注解实现 (两次启动Schedule Task 的解决方案)
- truncate python是删除文件内容吗_在Python中操作文件之truncate()方法的使用教程
- python中data.find_all爬取网站为空列表_利用Golang快速爬取盗版网站的整套音频
- ceph12.0.1的源码编译安装
- Linux epoll模型详解及源码分析
- 使用VST机架效果进行人声处理的顺序及相关插件
- 浙江大学计算机系自主招生题目,浙江大学自主招生试题
- Unity 扫描 二维码
- 【推荐】超级好用的打印插件Lodop使用笔记 动态赋值 打印模板解决方案
- 计算机如何安装无线网络适配器,小编教你电脑无线网卡驱动怎么安装
- 【论文阅读】AProNet: Detecting objects with precise orientation from aerial images
- 在使用html5的video标签播放视频时为何只有声音却没有图像
- selenium 模拟登陆豆瓣,爬取武林外传的短评
- Mysql第二章习题
- 如何高效使用Micropython看你喜欢看的视频?【下】(生成图片帧和WIFI传输播放)
- 使用jedis连接redis,关闭连接问题
- iOS 设置自定义间距的文字下划线
热门文章
- blog增量追加ing~(1/10阶段)ctf oj
- 用计算机制作演示文稿教案博客,信息技术:《制作演示文稿的一般过程》教案...
- Win11怎么把手机投屏到电脑上?
- python绘制每日的时序图_GitHub - wavous/Python-100-Days: Python - 100天从新手到大师
- html5 video断点续播,vue-video-player 断点续播的实现
- 置信区间的临界值_在进行区间估计时,若要求置信水平为95%,则相应的临界值为...
- 用JavaScript实现烟花效果
- “极狐•华为HI版本”的尴尬与困境
- JVM虚拟机相关知识
- postgreSql版的occurs函数