写在前面

在日常开发中,经常遇到数据库变更,字段增减调整,需要维护多个不同数据库时是十分痛苦的事情.代码可以使用svn,git等工具进行管理,那么数据库的版本可以使用Flyway 一款小工具,就可以大大简化这方面的工作。官方网站

介绍

flyway支持大部分主流的数据库,Oracle,SQL Server MySQL等;
并且拥有命令行工具,Maven,Gradle插件等;
配置简单,实用方便,支持Sql及java配置,这里写一个简单的java配置。

需要明白的几个概念:

  • 版本:对数据库的每一次变更可称为一个版本。
  • 迁移:Flyway把数据库结构从一个版本更新到另一个版本叫做迁移。
  • 可用的迁移:Flyway的文件系统识别出来的迁移版本。
  • 已经应用的迁移:Flyway已经对数据库执行过的迁移。

使用

  • 需要使用Flyway核心jar包;可直接下载flyway-core-3.2.1.jar。
  • 在项目中创建文件夹 src/dbmigration, 默认src/db/migration,可以在配置中进行修改。
  • 对Flyway进行数据库配置,这里使用spring配置文件配置,也可以使用java对象进行配置,
<bean id="flyway" class="org.flywaydb.core.Flyway" init-method=”migrate”><property name=”dataSource” ref=”dataSource” /> <!--数据源--><property name=”locations” value=”dbmigration”/> <!--脚本文件夹地址 默认src/db/migration--><property name=”validateOnMigrate” value=”false”/> <!--迁移验证 默认true--><property name=”baselineOnMigrate” value=”true”/> <!--基线迁移 默认false--><property name=”placeholderPrefix” value=”ignore”/> <!--占位符前缀--><property name=”outOfOrder” value=”false”/>
</bean><bean id=”sqlSessionFactory” class=”org.mybatis.spring.SqlSessionFactoryBean” depends-on=”flyway”> <!--建立前置依赖--><property name=”configLocation” value=”classpath:/conf/configuration.xml”/> <property name=”dataSource” ref=”dataSource” /> <!--数据源-->
</bean>

然后,就完成了简单配置了,在dbmigration文件夹下创建sql文件,比如:V1_0_1__初始化.sql,V1_0_2__修改表.sql等,其中sql脚本文件需要按照一定的规则来命名,能够让flyway检测并执行。

命名规则也能进行定义比如prefix、separator、suffix,默认prefix是V(执行一遍,并且版本号唯一,如果有重复就会报错)或R(重复执行,不需要版本号),separator是双下划线__,suffix是.sql。V开头+版本号+双下划线+描述。

新版本更改脚本,版本数字大于之前的版本就可以了。

注意

在启动tomcat启动后 加载配置文件运行flyway组件 对数据库版本更新,它在维护更新时会在数据库中新建表 schame_version 用来对sql脚本版本升级进行维护,一份sql文件对应一条数据,所以对数据库版本升级时,会根据该表查询进行操作,如果没有记录,则会执行该sql文件,如果存在数据则不执行,在对当前数据库中sql脚本只会执行一次,

如果出现异常例如:org.flywaydb.core.api.FlywayException: Schema “xxx” contains a failed migration to version 1.1.043 !则表示数据库冲突,需要把表 schame_version 相应记录删除,并且保证sql脚本操作不会与该数据库冲突。每次版本更新 schame_version 都会保存运行的结果。

数据库版本管理工具-flyway相关推荐

  1. 数据库版本管理工具Flyway应用

    2019独角兽企业重金招聘Python工程师标准>>> Flyway介绍 Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式.Flyway可以独立于应用实现管理 ...

  2. 数据库版本管理工具 -- Flyway

    目录 一.Flyway简介 二.如何使用Flyway 三.核心概念 1.Migration 2.每个migration支持两种编写方式: (1)java (2)sql (3)所有的migration都 ...

  3. 研发效能系列----开源的数据库版本管理工具Flyway

    1. 简介 网址:https://flywaydb.org/ Flyway是一款开源的数据库版本管理工具,Flyway可以独立于应用实现管理并跟踪数据库的变更,Flyway根据自己的约定,不需要复杂的 ...

  4. flyway版本号_数据库版本管理工具-flyway

    flyway产生背景 在日常开发中,经常遇到数据库变更,字段增减调整,需要维护多个不同数据库时是十分痛苦的事情.代码可以使用svn,git等工具进行管理,那么数据库的版本可以使用Flyway 一款小工 ...

  5. sqlite管理工具_Liquibase 数据库版本管理工具:1.安装

    1.Liquibase 是什么 粘一段官方的解释 Track, version, and deploy database changes 跟踪.管理和应用数据库变化 说白了,就是一个将你的数据库脚本转 ...

  6. numeric比较大小 数据库_Liquibase 数据库版本管理工具:3. changeSet 变更集详解

    上篇文章中详细了介绍了一下changelog 文件的使用,本篇文章将详细说一下 changeSet 变更集 中的细节,以及通常的使用方式 1.变更集分类 changeSet 分为 6类: add cr ...

  7. 数据库版本管理:flyway

    flyway,是一款数据库迁移工具,支持SQL脚本的自动备份和执行,在项目中非常方便我们进行部署应用到多套环境中初始化数据库或者升级数据库表的自动化工作. 文章目录 一.为什么要用flyway 二.怎 ...

  8. sql脚本对比工具_Java开发中用到的数据库迁移工具(flyway)

    什么是数据库版本管理? 任何web软件和应用程序都需要强大的数据库管理工具,因此开发者选择一款合适的数据库管理工具尤为重要.本文列出了几款好用的数据库管理工具(有些并非开源或免费),以供开发者们参考选 ...

  9. 【SQL管理】-Flyway数据库版本管理利器从入门到入味

    Flyway是什么? Flyway是独立于数据库的应用.管理并跟踪数据库变更的数据库版本管理工具.用通俗的讲,Flyway可以像Git管理不同人的代码那样,管理不同人的sql脚本,整个过程自动化,可回 ...

最新文章

  1. 2012年2月16日
  2. window下运行linux程序
  3. 首家中国快递公司赴美上市!总市值达141亿美元
  4. 自考c语言程序设计,自考“C语言程序设计”模拟试题八
  5. 报错Submitted credentials for token did not match the expected credentials
  6. 收集iOS程序的代码覆盖率
  7. 【Vegas2008】7月19日-凉粉的做法
  8. 【265天】跃迁之路——程序员高效学习方法论探索系列(实验阶段23-2017.10.28)...
  9. VTK(一)---VTK简单示例
  10. Qt_QTableWidget用法 添加、删除、添加控件、获取控件在表格中位置
  11. Ubuntu 安装 wine 和 TIM
  12. VBScript: 正则表达式(RegExp对象)
  13. 理论上讲,股市暴跌是不是要清仓?为什么?
  14. 计算机登录的qq点赞怎样删除,QQ空间个性点赞怎么设置 怎么取消
  15. 最公正海贼王实力排行TOP50!
  16. python采集抖音数据_抖音数据采集,最全python库selenium自动化使用!
  17. 关于sessions.ser文件的一些思考
  18. cerebro简单的搭建
  19. android第三方图标库,Android 第三方库AgentWeb的使用
  20. 初学者入门必看!马克笔笔法与使用技巧

热门文章

  1. 趣谈网络协议 - 第16讲 | 流媒体协议:如何在直播里看到美女帅哥?
  2. String类的几种常见函数
  3. APP+spring boot基于Android智能手机的微课程学习系统设计与实现 毕业设计源码100909
  4. eclipse 离线安装checkStyle
  5. 高频故障-双击图标出现属性(打不开程序)
  6. 从走到跑 王秀娟的坚守
  7. 昆山亭林园千年古银杏树
  8. 总合(。。。。。。)
  9. 幼儿园里如何运用计算机技术,信息技术在幼儿园中的运用与思考
  10. 手机APP制作流程一、Java JDK、Android studio、夜神模拟器安装