Flyway 数据库版本管理控制

Flyway 是一个用Java编写的开源数据库版本管理工具,或者说是数据库结构变更工具,主要用于帮助开发和运维更容易地管理数据库演进过程中的各个版本。

Maven 所需的JAR包:

<!--flyway要用到的jar包  --><dependency><groupId>com.googlecode.flyway</groupId><artifactId>flyway-core</artifactId><version>2.3.1</version>
</dependency>

下面以Spring Mvc + Spring + Mybatis 框架作为例子:

(1)首先创建flyway函数,用于操作数据库版本管理

package com.lmx.flyway;import javax.sql.DataSource;import com.googlecode.flyway.core.Flyway;public class flywaymigration {private DataSource dataSource;private String flywaySchemas;private String schemaVersion;private String flywaysLocations;public DataSource getDataSource() {return dataSource;}public void setDataSource(DataSource dataSource) {this.dataSource = dataSource;}public String getFlywaySchemas() {return flywaySchemas;}public void setFlywaySchemas(String flywaySchemas) {this.flywaySchemas = flywaySchemas;}public String getSchemaVersion() {return schemaVersion;}public void setSchemaVersion(String schemaVersion) {this.schemaVersion = schemaVersion;}public String getFlywaysLocations() {return flywaysLocations;}public void setFlywaysLocations(String flywaysLocations) {this.flywaysLocations = flywaysLocations;}// 执行数据库版本升级public void migration() {Flyway flyway = new Flyway();flyway.setDataSource(dataSource);flyway.setLocations(flywaysLocations); // 设置flyway扫描sql升级脚本所在的包flyway.setEncoding("UTF-8"); // 设置sql脚本文件的编码// flyway.setOutOfOrder(true);flyway.setSchemas(flywaySchemas); // 设置接受flyway进行版本管理的多个数据库flyway.setTable(schemaVersion); // 设置存放flyway 单个数据库版本数据信息的表名// 设置当validation失败时的系统行为try {flyway.setInitOnMigrate(true);flyway.migrate();} catch (Exception e) {flyway.repair();}}}

(2)其次就是配置容器启动时候执行数据库自动升级操作:

 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/test" /><property name="username" value="root" /><property name="password" value="" /></bean><!-- spring mybatis.xml --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"depends-on="flywaymigration" p:dataSource-ref="dataSource" /><!-- flyway --><bean id="flywaymigration" class="com.lmx.flyway.flywaymigration"init-method="migration"><property name="dataSource" ref="dataSource" /><property name="flywaySchemas" value="flywaySchemas_test" /><property name="schemaVersion" value="schemaVersion_test" /><property name="flywaysLocations" value="db/migration" /></bean>

(3) 把版本升级的SQL放到指定升级目录中:(例子目在src\main\resources\db\migration\)

(4) 执行后:

总结不好多多担待,文章只单纯个人总结,如不好勿喷,技术有限,有错漏麻烦指正提出。本人QQ:373965070

Flyway 数据库版本管理控制相关推荐

  1. Spring Boot 2.x基础教程:使用Flyway管理数据库版本

    之前已经介绍了很多在Spring Boot中使用MySQL的案例,包含了Spring Boot最原始的 JdbcTemplate(https://blog.didispace.com/spring-b ...

  2. Spring Boot中使用Flyway来管理数据库版本

    久违了的Spring Boot系列,今天抽空更新一篇.之前写过很多篇关于数据访问的文章了,比如下面这些: 使用JdbcTemplate 使用Spring-data-jpa简化数据访问层(推荐) 多数据 ...

  3. flyway常用配置_Spring Boot 2.x基础教程:使用Flyway管理数据库版本

    之前已经介绍了很多在Spring Boot中使用MySQL的案例,包含了Spring Boot最原始的JdbcTemplate.Spring Data JPA以及我们国内最常用的MyBatis.同时, ...

  4. Maven学习总结(33)——开发人员如何使用 Flyway 插件管理数据库版本

    一.前言. 想到要管理数据库的版本,是在实际产品中遇到问题后想到的一种解决方案,当时各个环境的数据库乱作一团,没有任何一个人(开发.测试.维护人员)能够讲清楚当前环境下的数据库是哪个版本,与哪个版本的 ...

  5. Spring Boot教程(四十)使用Flyway来管理数据库版本

    在上面的使用JdbcTemplate一文中,主要通过spring提供的JdbcTemplate实现对用户表的增删改查操作.在实现这个例子的时候,我们事先在MySQL中创建了用户表.创建表的过程我们在实 ...

  6. spring-cloud集成数据库版本迁移工具flyway

    spring-cloud集成数据库版本迁移工具flyway Flyway实现数据库版本同步有两种方式,一种就是直接导包,通过配置文件使用,还有一种就是自定义的方式. 一 .依赖+配置文件 1 flyw ...

  7. flyway版本号_Flyway 管理数据库版本变更

    logo 一. Flyway介绍 Flyway的定位:数据库的版本控制. Flyway是一款开源的数据库版本管理工具,Flyway可以独立于应用实现管理并跟踪数据库的变更(DDL和DML语句),Fly ...

  8. Flyway 数据库脚本版本控制工具

    Flyway简介 Flyway是一个简单开源数据库版本控制器(约定大于配置),主要提供migrate.clean.info.validate.baseline.repair等命令.它支持SQL(PL/ ...

  9. Flyway数据库迭代升级迁移

    Flyway简介 Flyway 是一款开源的数据库版本管理工具.它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本. 在项目或产品中,很难一开始就把业务理清楚,把数据 ...

最新文章

  1. Ubuntu 14.04 64位字体美化(使用文泉驿微黑)
  2. Android自定义View的实现方法,带你一步步深入了解View(四)
  3. 征稿 | “健康知识图谱”投稿通道开启
  4. 让FLASH背景透明-可运用于在网页内的FLASH内嵌入另一个网页
  5. 优秀作品展示:15个使用了漂亮字体的网站
  6. matlab xls转csv,使用python或Matlab将csv文件中的数据转换为csv文件
  7. 中国风android,小鱼天气 - 水墨古典中国风 #Android
  8. <C语言>简单表白代码小❤❤
  9. 位置不可用无法访问E此卷不包含可识别文件系统
  10. Python课后作业 2. 分治法找假币 ----(第八次作业)
  11. WebMatrix 视频教程简介
  12. 学习pinia 介绍-State-Getters-Actions-Plugins
  13. 浙江职称英语和职称计算机考试报名,2017浙江职称计算机考试报名:丽水职称计算机报名入口...
  14. native Vlan
  15. python中pyecharts 柱状图 折线图混用_Python3 pyecharts生成Html文件柱状图及折线图代码实例...
  16. spwm控制算法c语言实现,三种SPWM波形生成算法的分析与实现
  17. 亚琛电动车初创Ego停产,进入破产程序
  18. Android开发 之 线性渲染 LinearGradient
  19. Unity 声音播放控制:Audio Mixer
  20. Mixly环境下Arduino实现触摸式开关

热门文章

  1. 利用Adorner制作用于图像裁切的选择框
  2. PHP获取汉字首字母并分组排序
  3. Android开发,你应该知道的
  4. Java数据库接口JDBC入门基础讲座_JDBC基础教程之连接
  5. MS SQL入门基础:删除数据库
  6. 第11章 Spring Boot使用Actuator
  7. SSM框架使用遇到的问题
  8. UIActionSheet的最后一项点击失效
  9. 深入理解jQuery插件开发(转)
  10. (转载)Vim入门图解说明