zoukankan      html  css  js  c++  java
  • springboot集成flyway实践

    1、创建springboot工程,使用的版本为2.4

    工程结构如下:

    2、增加依赖

            <!--flywaydb-->
            <dependency>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-core</artifactId>
                <version>5.2.1</version>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.10</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
    
          <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
    

     

    3、application.yml  配置

    创建空的数据库flyway

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/flyway?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
        username: root
        password: 123456
        driver: com.mysql.cj.jdbc.Driver
      #flyway配置
      flyway:
        baseline-on-migrate: true
        #数据库连接配置
        url: jdbc:mysql://localhost:3306/flyway?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
        user: root
        password: 123456
        #忽略脚本顺序
        out-of-order: true
    

      

    4、在resources文件夹下创建db/migration 文件夹

     SQL文件的命名需要遵从一定的规范,否则运行的时候会报错。

    1、仅需要执行一次的SQL: V开头,后面跟上数字,数字之间可以是"."或者“_"分开。然后再以两个下划线分割。

    2、可重复运行的SQL,以”R“开头,后面再跟两个下划线。

    V1.1__create_user_ddl.sql

    CREATE TABLE IF NOT EXISTS `USER`(
        `USER_ID`          INT(11)           NOT NULL AUTO_INCREMENT,
        `USER_NAME`        VARCHAR(100)      NOT NULL COMMENT '用户姓名',
        `AGE`              INT(3)            NOT NULL COMMENT '年龄',
        `CREATED_TIME`     datetime          NOT NULL DEFAULT CURRENT_TIMESTAMP,
        `CREATED_BY`       varchar(100)      NOT NULL DEFAULT 'UNKNOWN',
        `UPDATED_TIME`     datetime          NOT NULL DEFAULT CURRENT_TIMESTAMP,
        `UPDATED_BY`       varchar(100)      NOT NULL DEFAULT 'UNKNOWN',
        PRIMARY KEY (`USER_ID`)
        )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

      

    V1.2__add_user_dml.sql

    insert into `user`(user_name,age) values('lisi',33);
    

      

    R__add_unknown_user.sql.sql

    insert into `user`(user_name,age) values('unknown',33);
    

      

    5、启动程序

     查看数据库,创建了两张条,分别为flyway_schema_history和user

     flyway_schema_history表

    user表

    6、插件的使用

    <plugin>
                    <groupId>org.flywaydb</groupId>
                    <artifactId>flyway-maven-plugin</artifactId>
                    <version>5.2.1</version>
                    <configuration>
                        <url>jdbc:mysql://localhost:3306/flyway?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT</url>
                        <user>root</user>
                        <password>root</password>
                        <driver>com.mysql.cj.jdbc.Driver</driver>
                    </configuration>
                </plugin>
    

      

    参考: https://www.jianshu.com/p/567a8a161641

    作者:Work Hard Work Smart
    出处:http://www.cnblogs.com/linlf03/
    欢迎任何形式的转载,未经作者同意,请保留此段声明!

  • 相关阅读:
    RabbitMQ + topic发送消息+python
    maven下载依赖jar包失败处理方法--下载jar包到本地并安装到maven仓库中
    Jmeter--thrift接口压测
    将jar文件加到maven的local repository中
    在Mac机器上给ITerm2配置lrzsz,便捷的传输文件到远程服务器上
    linux iptables 开启和关闭服务端口号
    centos 安装PGSQL
    pgsql 常用的命令
    web压力测试工具
    centos安装 mysql
  • 原文地址:https://www.cnblogs.com/linlf03/p/15244269.html
Copyright © 2011-2022 走看看