zoukankan      html  css  js  c++  java
  • 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).
  • 相关阅读:
    linux编译C
    Windows下ARP协议的工作原理简介
    窥探QQ基础数据库架构演变史
    JAVA培训—线程同步--卖票问题
    SQLite、MySQL和PostgreSQL 三种关系数据库哪个好?
    再论谭浩强《C语言程序设计》
    JPG加入RAR文件原理详解
    如何区分一个程序员是“老手“还是“新手“?
    AutoITx3.DLL所有函数及说明
    windows索引服务
  • 原文地址:https://www.cnblogs.com/qq739178184/p/5120810.html
Copyright © 2011-2022 走看看