一、为什么要使用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 '' 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 '' COMMENT '启用标识 0-未启用 1-启用',
`LOCK_FLAG` varchar(10) DEFAULT '' 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 '' 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 '' COMMENT '删除标志 1 删除 0 未删除',
`IS_FICTITIOUS` varchar(1) DEFAULT '' COMMENT '是否为虚拟用户FD000018 0-否 1-是',
`STATUS_RELATION` varchar(1) DEFAULT '' 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', '', '', '机构管理员', '', '', 'admin000006', 'e9cdd7cacf3940e525f283f5fa4fa33a', NULL, NULL, '', '', 'JGGLY', 'SSTGK', NULL, '2020-06-19 17:19:28', NULL, 1, '', '', NULL, NULL, NULL, NULL, NULL, NULL, '', '', '');
INSERT INTO `test` VALUES (null, 9, '2020-05-23 14:24:22', '2020-05-23 15:27:32', '', '', '王xue', '', '', 'wanggx', 'e9cdd7cacf3940e525f283f5fa4fa33a', NULL, '', '', '', 'WXUE', 'GXUE', NULL, NULL, NULL, 11, '', '', NULL, NULL, NULL, '2020-05-23 14:10:08', NULL, 'https://image.baidu.com/search/detail', '', '', '');
INSERT INTO `test` VALUES (null, 9, '2020-05-26 15:42:28', '2020-05-23 17:34:05', '', '', '测试', '', '', 'wgx', 'e9cdd7cacf3940e525f283f5fa4fa33a', 'http://static.ruiyicloud.com.cn/image/big-platform/head-picture/000014/0000141590226435000', '', '', '', 'CS', 'IY', NULL, NULL, NULL, 21, '', '', NULL, NULL, NULL, '2020-05-23 14:26:09', '2020-05-23 15:58:14', NULL, '', '', '');

最新文章

  1. 数据结构之图 Part1
  2. Mybatis学习记录(五)----Mybatis的动态SQL
  3. (转)《深入理解java虚拟机》学习笔记8——Tomcat类加载器体系结构
  4. 执行configure报错configure: error: C++ preprocessor &quot;/lib/cpp&quot; fails sanity check
  5. android USB OTG功能实现
  6. CSS排序工具csscomb
  7. 文件锁FileLock
  8. css复合选择器的权重
  9. 一文洞悉Python必备50种算法!资深大牛至少得掌握25种!
  10. SAP MM 物料主数据MRP2 视图Rounding Value字段
  11. appium定位h5
  12. 队列模拟基本操作I
  13. mac系统搭建SVN版本控制
  14. 背景平铺(兼容IE8)
  15. 在delphi中嵌入脚本语言--(译)RemObjects Pascal Script使用说明(1)(译)
  16. RabbitMQ和Kafka对比以及场景使用说明
  17. 【Java面试题】33 HashMap和Hashtable的区别
  18. iOS定位原理和使用建议(转)
  19. jquery 获取 tagName(JQuery如何得到tagName?)
  20. git学习笔记5

热门文章

  1. python 10 else EasyGui(转载)
  2. 笔记:HTTP协议基础
  3. Jmeter 常用函数(1)- 详解 __Random
  4. OVS DPDK VXLAN隧道处理
  5. dcoker 小应用(二)
  6. 3分钟教会你如何发布Qt程序
  7. 操作系统-I/O(5)I/O软件的层次结构
  8. 【转】Linux环境搭建FTP服务器与Python实现FTP客户端的交互介绍
  9. Ubuntu 磁盘满了处理方法。
  10. Java数据结构——二叉搜索树