Flyway-使用步骤

 

1.创建一个Maven项目

2.编辑当下的pom.xml,添加flyway依赖和Mysql依赖

<project ...>
    ...
    <dependencies>
        <dependency>
            <groupId>com.googlecode.flyway</groupId>
            <artifactId>flyway-core</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        ...
    </dependencies>
    ...
</project>

3.整合flyway

  现在我们可以将Flyway的代码放入项目中,并配置数据库,例如增加到默认生成的:src/main/java/foobar/App.java

package foobar;

import com.googlecode.flyway.core.Flyway;

public class App {
    public static void main(String[] args) {
        // 创建Flyway实例
        Flyway flyway = new Flyway();

        // 设置数据库
        flyway.setDataSource("jdbc:mysql://localhost:3306/foobar", "user", "pass");

        // 开始迁移
        flyway.migrate();
    }
}

4.创建第一个数据迁移

  创建数据迁移目录src/main/resources/db/migration

  执行命令mkdir -p src/main/resources/db/migration

  创建我们的第一个数据迁移src/main/resources/db/migration/V1__Create_person_table.sql

CREATE TABLE person (
    id INT,
    name VARCHAR(100)
);

5.执行App.java

  执行App.java(也可以直接在IDE中执行main方法)

  mvn package exec:java -Dexec.mainClass=foobar.App -Dmaven.test.skip=true

  如果你成功了,应该会得到如下信息

INFO: Creating Metadata table: `foobar`.`schema_version`
Feb 27, 2014 12:20:18 AM com.googlecode.flyway.core.command.DbMigrate migrate
INFO: Current version of schema `foobar`: << Empty Schema >>
Feb 27, 2014 12:20:18 AM com.googlecode.flyway.core.command.DbMigrate applyMigration
INFO: Migrating schema `foobar` to version 1
Feb 27, 2014 12:20:18 AM com.googlecode.flyway.core.command.DbMigrate logSummary
INFO: Successfully applied 1 migration to schema `foobar` (execution time 00:00.194s).

6.继续添加数据迁移

  假如我们现在需要增加第二个数据迁移,命名为:src/main/resources/db/migration/V2__Add_people.sql

INSERT INTO person (id, name) VALUES (1, ‘Axel‘);
INSERT INTO person (id, name) VALUES (2, ‘Mr. Foo‘);
INSERT INTO person (id, name) VALUES (3, ‘Ms. Bar‘);

  执行命令

  mvn package exec:java -Dexec.mainClass=foobar.App -Dmaven.test.skip=true

  输出如下

Feb 27, 2014 12:25:00 AM com.googlecode.flyway.core.command.DbMigrate migrate
INFO: Current version of schema `foobar`: 1
Feb 27, 2014 12:25:00 AM com.googlecode.flyway.core.command.DbMigrate applyMigration
INFO: Migrating schema `foobar` to version 2
Feb 27, 2014 12:25:00 AM com.googlecode.flyway.core.command.DbMigrate logSummary
INFO: Successfully applied 1 migration to schema `foobar` (execution time 00:00.047s).
时间: 2024-11-01 15:06:09

Flyway-使用步骤的相关文章

flyway的使用

在频繁的工程实践中,服务端程序与数据库不断的更新,如果服务端和数据库部署不一致,经常性的会导致各种问题.为了解决这一问题,可行的方案之一就是让数据库随着服务端的版本而更新,flyway就是一种解决方案. 一. 目的 管理数据库更新. 二.方法 直接在java工程中嵌入sql脚本.工程重新部署时,会自动更新数据库,保证数据库与代码同步,避免了手动更新数据库带来的弊病. 三.原理 在数据库中创建了一个表schema_version,该表的最后记录为当前数据库版本. 四.步骤 1.在pom文件中加入如

Flyway的第一次认识

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

Flyway学习笔记

Flyway做为database migration开源工具,功能上像是git.svn这种代码版本控制.google搜索database migration,或者针对性更强些搜索database migration java,会有其它的framework.tool.甚至aws的service.因为项目使用到了flyway,而且确实google中排第一位的搜索结果就是flyway,那就之后有机会再与其它方案做比较,先对flyway做下学习笔记. 0.支持的数据库 支持数据库有 Oracle, SQ

微信公众号之订阅号(已认证)实现oauth2授权登录详细步骤介绍

一: 简介 通过 微信公众平台---->权限接口 可以得知 微信的订阅号是没有授权登录接口的,只有服务号才有该权限.这点微信公众平台在多处反复强调 最终的事实是:微信订阅号是可以实现授权登录的! 二:具体实现步骤: 1. 首先在 微信公众平台(https://mp.weixin.qq.com/) [开发]----> [基本配置]----->[服务器配置]完成基本的配置信息 URL: 这里的地址我写的是我们HTML5项目的某个Controller或Servlet的地址,例如 http://

关于win下Memcached安装步骤

2天对我来说有点煎熬..数据量达到17w的时候 我本地执行查询速度特别慢! 请教了一些php大牛如何解决速度问题,在加了索引和优化sql后还是速度慢!我决定在win环境下用Memcached和memcache 来处理,先声明一下: memcache是php的拓展,memcached是客户端,复杂的说:Memcache模块提供了于memcached方便的面向过程及面向对象的接口,memcached是为了降低动态web应用 从数据库加载数据而产生的一种常驻进程缓存产品. 因为我本地用的是xampp集

eclipse安装java ee插件方法步骤

1.本人以前使用的MyEclipse进行Javaweb开发,但是后来由于myeclipse实在太臃肿,经常在运行的过程中不流畅 (可能电脑内存也不是太高吧)   !所以坚决换用eclipse,但是问题来了,下载的eclipse因为是标准版所以也不支持Javaweb开发,所以要来配置一下开发环境,安装Javaee开发插件   ,以下为安装步骤 1.1 在Eclipse中菜单help选项中选择install new software选项 1.2 在work with 栏中输入 http://down

sourceTree 安装使用步骤 - Mac

刚到公司,公司是用sourceTree管理代码,瞬间懵逼,自己下载吧,安装到 要去Atlassian上注册账号,点击goto 按步骤输入邮箱地址和登录密码. 我用的苹果电脑  网页打不开 查询网上说的要FQ 我就用APP store 下载一个VPN 随意下载一个 打开,  我用的第一个 打开网页 按步骤输入邮箱地址和密码了,  等着邮件回复  这是一个坑呀 回复要一天 一般都是半夜十二点才给发,而且我用的QQ邮箱 直接给发到垃圾箱了 进去访问网址 还的打开VPN 点击downloads  找到s

VMware 安装CentOS 6.5图文步骤 以及安装后无法联网的解决办法

一.VMwareWorkstation10 中安装Centos6.5(64位)步骤: 首先下载vmware 和centos6.5 1. 打开VMware-workstation点击“新建虚拟机”,到向导窗口.选择自定义—>下一步.   2. 选择虚拟机硬件兼容workstation10.0,下一步.   3. 选择稍后安装系统,下一步.   4. 选择操作系统为Linux,版本CentOS 64 位.下一步.   5. 给虚拟机命名,指定安装位置,下一步.   6. 配置处理器信息(我这里采用默

回归分析步骤

The 13 Steps for Statistical Modeling in any Regression or ANOVA No matter what statistical model you're running, you need to go through the same 13 steps.  The order and the specifics of how you do each step will differ depending on the data and the

PHP连接MySQL的八个步骤【实操】

我们为大家将数据库连接整理成了最重要的8个步骤,我戏称它为:"数据库连接天龙八步". 这八个步骤如下,并且将每一步使用的函数都做了说明: 第一步:  连接数据库服务器 类型 说明 函数 mysqli_connect 功能 连接到mysql数据库服务器 参数1 主机 参数2 数据库服务器登陆名 参数3 密码 参数4 数据库的名称 参数5 数据库服务器端口不填默认3306 若参数4,数据库名称在此步已填并择,不需要执行第三步. 第二步:  判断错误 类型 说明 函数 mysqli_errn