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