Flyway--01入门

1.简介
Flyway是一款开源的数据库版本管理工具,Flyway可以实现自动化的数据库版本管理,并且能够记录数据库版本更新记录;通常在项目开始时会针对数据库进行全局设计,但在开发产品新特性过程中,难免会遇到需要更新数据库Schema的情况,如:添加新表,添加新字段和约束等,这种情况在实际项目中也常发生。那么,当开发人员完成了对数据库更的SQL脚本后,如何快速地在其他开发者机器上同步?并且如何在测试服务器上快速同步?以及如何保证集成测试能够顺利执行并通过呢?以上问题可以通过Flyway工具来解决,Flyway可以实现自动化的数据库版本管理,并且能够记录数据库版本更新记录;

2.测试Demo
1.环境:创建普通java项目,本地搭建好Mysql,项目引入jar包mysql-connector-java-5.1.6.jar和flyway-core-3.2.1.jar
2.代码:

 import org.flywaydb.core.Flyway;

public class Main {

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

        // 设置数据库
        flyway.setDataSource("jdbc:mysql://localhost:3306/test", "root", "123456");

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

    }
}

3.在classpath路径下创建目录db,在db目录下创建子目录migration,在目录下创建文件V1__Create_person_table.sql
文件内容如下:
CREATE TABLE person (
id INT,
name VARCHAR(100)
);
备注:这里的目录是固定格式,sql文件命名有一定规则,这里先暂时这样创建,sql的作用是创建一个表;
如果使用eclipse的maven项目,那么db目录就是在src/main/resource下,如果是idea,db就是在out下面,(和编译得到的class文件同级)
4.数据库:
运行java程序,检查数据库,发现数据库中多了两张表,一张person,一张schema_version,前者就是sql创建的,后者是flyway工具用于对数据库进行版本控制的辅助表,借助于辅助表来完成对数据库的版本控制,具体细节后续再慢慢理解,先简单使用;
5.其他:
eclipse的maven项目里面添加jar包的约束

<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>

idea的sql文件路径:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/my_momo_csdn/article/details/80089486