zoukankan      html  css  js  c++  java
  • Spring Boot项目集成flyway

    一、为什么要使用flyway

      Flyway的定位:数据库的版本控制。
     
      用一种简单、干净的方案,帮助用户完成数据库迁移的工作。使用Flyway,用户可以从任意一个数据库版本迁移到最新版本,简单而且有效。
     
      支持多个平台:windows、ios、linux、docker、java、android

    二、如何使用flyway

    2.1 添加依赖(推荐版本)

    <dependency>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-core</artifactId>
        <version>5.2.1</version>
    </dependency>

    2.2添加配置

    spring:
      # 数据库版本控制
      flyway:
        enabled: true
        # 若连接的数据库非空库,是否初始化
        baseline-on-migrate: true
        # 是否开启校验(若开启校验,flyway在启动校验失败时会清空数据库中的表和删除表结构)
        validate-on-migrate: false
        # 默认脚本加载路径:/db/migration
        locations: classpath:/db/migration
        #存储初始化数据的表名
        table: sysmn_flyway_schema_history

    2.3 添加初始化文件

      在resources目录下的db.migration目录下添加V202007131636__init.sql文件
     
    注意:
    • V:版本前缀(若配置中无特殊配置,必须为“V”)
    •  202007131636:版本号 (新添加的配置文件必须必之前的版本号大)
    • __ :  双下划线(重点:双下划线)
    • init:区分标识(init表示初始化数据库表)
    • .sql :后缀(不可更改)
    -- sql脚本文件
    -- 命名规则 年月日时分__姓名.sql
    use rhmp_controller;
    CREATE TABLE `test` (
      `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据主键ID',
      `DATA_VERSION` int(11) NOT NULL DEFAULT '1' COMMENT '版本号',
      `GMT_CREATE` datetime NOT NULL COMMENT '数据创建时间',
      `GMT_MODIFY` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '数据修改时间',
      `ORG_CODE` varchar(50) DEFAULT NULL COMMENT '用户所在机构',
      `USER_CODE` varchar(255) DEFAULT NULL COMMENT '用户代码',
      `USER_NAME` varchar(100) DEFAULT NULL COMMENT '用户姓名',
      `USER_CLASS` varchar(100) DEFAULT NULL COMMENT '用户类型',
      `PERSON_CODE` varchar(100) DEFAULT NULL COMMENT '服务人员代码',
      `LOGIN_NAME` varchar(100) NOT NULL COMMENT '系统用户登录名',
      `LOGIN_PWD` varchar(200) NOT NULL COMMENT '登录密码',
      `HEAD_PORTRAIT` varchar(1000) DEFAULT NULL COMMENT '用户头像',
      `USER_TITLE` varchar(100) DEFAULT NULL COMMENT '用户职称',
      `ENABLE_FLAG` varchar(10) DEFAULT '0' COMMENT '启用标识  0-未启用  1-启用',
      `LOCK_FLAG` varchar(10) DEFAULT '0' COMMENT '锁定标识  1-锁定   0-正常',
      `PY_CODE` varchar(100) DEFAULT NULL COMMENT '拼音码',
      `WB_CODE` varchar(100) DEFAULT NULL COMMENT '五笔码',
      `THIRD_CODE` varchar(100) DEFAULT NULL COMMENT '第三方编码',
      `LAST_LOGIN_DATE` datetime DEFAULT NULL COMMENT '用户最后登录时间',
      `LOGIN_COUNT` int(11) DEFAULT NULL COMMENT '累计登录次数',
      `SORT_NO` int(11) DEFAULT '0' COMMENT '排序号',
      `AUDIT_FLAG` varchar(1) DEFAULT NULL COMMENT '是否需要审核   0:不需要审核 1:需要审核',
      `AUDIT_PASS` varchar(1) DEFAULT NULL COMMENT '审核结果 审核标识为1时启用,FD000010,0:未审核1:通过,2:不通过',
      `REMARK` varchar(1000) DEFAULT NULL COMMENT '备注(审核不通过时是不通过原因)',
      `AUDIT_USER_CODE` varchar(50) DEFAULT NULL COMMENT '审核人CODE',
      `AUDIT_TIME` datetime DEFAULT NULL COMMENT '审核时间',
      `VALID_TIME` datetime DEFAULT NULL COMMENT '生效时间',
      `UNVALID_TIME` datetime DEFAULT NULL COMMENT '失效时间',
      `BACK_IMAGE` varchar(255) DEFAULT NULL COMMENT '主题背景图片地址',
      `DELETE_FLAG` varchar(1) DEFAULT '0' COMMENT '删除标志  1 删除  0 未删除',
      `IS_FICTITIOUS` varchar(1) DEFAULT '0' COMMENT '是否为虚拟用户FD000018   0-否  1-是',
      `STATUS_RELATION` varchar(1) DEFAULT '0' COMMENT '是否为医疗机构停用关联的停用FD000018:0-否,1-是',
      PRIMARY KEY (`ID`) USING BTREE,
      UNIQUE KEY `SYS_USER_IDX1` (`LOGIN_NAME`,`DELETE_FLAG`) USING BTREE,
      UNIQUE KEY `UI_SYS_USER` (`USER_CODE`,`DELETE_FLAG`) USING BTREE
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='系统用户表';
     
     
    INSERT INTO `test` VALUES (null, 8, '2020-06-01 10:53:56', '2020-06-19 17:19:29', '0000000003', '000006', '机构管理员', '0', '000006', 'admin000006', 'e9cdd7cacf3940e525f283f5fa4fa33a', NULL, NULL, '1', '0', 'JGGLY', 'SSTGK', NULL, '2020-06-19 17:19:28', NULL, 1, '1', '1', NULL, NULL, NULL, NULL, NULL, NULL, '0', '1', '0');
    INSERT INTO `test` VALUES (null, 9, '2020-05-23 14:24:22', '2020-05-23 15:27:32', '0000000003', '000013', '王xue', '05', '000003', 'wanggx', 'e9cdd7cacf3940e525f283f5fa4fa33a', NULL, '05', '1', '0', 'WXUE', 'GXUE', NULL, NULL, NULL, 11, '1', '1', NULL, NULL, NULL, '2020-05-23 14:10:08', NULL, 'https://image.baidu.com/search/detail', '1', '0', '0');
    INSERT INTO `test` VALUES (null, 9, '2020-05-26 15:42:28', '2020-05-23 17:34:05', '0000000003', '000014', '测试', '05', '000005', 'wgx', 'e9cdd7cacf3940e525f283f5fa4fa33a', 'http://static.ruiyicloud.com.cn/image/big-platform/head-picture/000014/0000141590226435000', '05', '0', '0', 'CS', 'IY', NULL, NULL, NULL, 21, '1', '1', NULL, NULL, NULL, '2020-05-23 14:26:09', '2020-05-23 15:58:14', NULL, '0', '0', '0');
  • 相关阅读:
    python基础26——派生&多态&绑定与非绑定方法
    python基础25——继承&属性查找&多继承的菱形问题&Mixins机制
    emmm......就当练习了系列20
    python基础24——封装&property
    emmm......就当练习了系列19
    python基础23——面向对象
    [转]N年Python老司机,血泪总结新手常见10大错误
    ATM机+购物车
    python基础22——logging模块&
    emmm......就当练习了系列18
  • 原文地址:https://www.cnblogs.com/wgx519/p/13666117.html
Copyright © 2011-2022 走看看