flyway版本号_数据库版本管理工具-flyway
flyway产生背景
在日常开发中,经常遇到数据库变更,字段增减调整,需要维护多个不同数据库时是十分痛苦的事情.代码可以使用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对象进行配置,
然后,就完成了简单配置了,在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版本号_数据库版本管理工具-flyway相关推荐
- 数据库版本管理工具Flyway应用
2019独角兽企业重金招聘Python工程师标准>>> Flyway介绍 Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式.Flyway可以独立于应用实现管理 ...
- 数据库版本管理工具 -- Flyway
目录 一.Flyway简介 二.如何使用Flyway 三.核心概念 1.Migration 2.每个migration支持两种编写方式: (1)java (2)sql (3)所有的migration都 ...
- 研发效能系列----开源的数据库版本管理工具Flyway
1. 简介 网址:https://flywaydb.org/ Flyway是一款开源的数据库版本管理工具,Flyway可以独立于应用实现管理并跟踪数据库的变更,Flyway根据自己的约定,不需要复杂的 ...
- 数据库版本管理工具-flyway
写在前面 在日常开发中,经常遇到数据库变更,字段增减调整,需要维护多个不同数据库时是十分痛苦的事情.代码可以使用svn,git等工具进行管理,那么数据库的版本可以使用Flyway 一款小工具,就可以大 ...
- flyway版本号_使用flyway作为数据库版本工具
1. 在maven中添加jar包. org.flywaydb flyway-core 5.2.4 2.在classpath目录中添加文件夹 db.migration --文件名称是可以改变 3.在配置 ...
- flyway版本号_各个互联网公司都在用的开源数据库控制器Flyway
开源的数据库控制器 在开发中,我们经常会遇到上线数据库表的情况,代码上我们有git,svn这样优秀的版本控制软件,但是数据库的迭代我们不能使用手工的方式迭代吧?或者说每次上线前手工去数据库执行.这样带 ...
- sqlite管理工具_Liquibase 数据库版本管理工具:1.安装
1.Liquibase 是什么 粘一段官方的解释 Track, version, and deploy database changes 跟踪.管理和应用数据库变化 说白了,就是一个将你的数据库脚本转 ...
- numeric比较大小 数据库_Liquibase 数据库版本管理工具:3. changeSet 变更集详解
上篇文章中详细了介绍了一下changelog 文件的使用,本篇文章将详细说一下 changeSet 变更集 中的细节,以及通常的使用方式 1.变更集分类 changeSet 分为 6类: add cr ...
- 数据库版本管理:flyway
flyway,是一款数据库迁移工具,支持SQL脚本的自动备份和执行,在项目中非常方便我们进行部署应用到多套环境中初始化数据库或者升级数据库表的自动化工作. 文章目录 一.为什么要用flyway 二.怎 ...
最新文章
- 通过NSProxy来解决NSTimer使用不当造成内存泄漏的问题
- Keepalived + LVS-DR搭建高可用Web服务器集群
- jvm性能调优实战 -58类加载器过多引发的OOM问题
- Django生命周期与中间件
- python3 next_对Python 3.2 迭代器的next函数实例讲解
- Java中对接钉钉API获取数据流程
- IDEA系列(四)一部署war 和 war exploded的区别
- 玩! 框架+ Google Guice
- Matlab R2014a安装教程
- 【Unity】关于ScreenCapture.CaptureScreenshot截屏的尝试
- 使用git进行word版本管理
- Excel自定义格式千分符
- 安装Server2003+SQL2000+SQL2000SP4
- 百度网盘解析工具 利用IDM等工具提速下载
- PCI Express转并口卡不能是被HJtag识别的解决办法
- 小丁的Spring笔记一(概述)
- 量化人才之战如何取胜
- flash actionscript MovieClip(电影剪辑)控制
- 某程序员哀叹:做码农真的很悲哀,有的35岁就没人要了
- 鲁大师2021半年报电动车智能排行:九号霸榜,造车新势力崛起!
热门文章
- 【maven install报错】Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war
- 【洛谷 P2051】 [AHOI2009]中国象棋(DP)
- Codeforces Round #462 (Div. 2)
- Nis服务器主从安装配置
- nginx 服务脚本编写模板
- springmvc的执行流程详解
- 创建线程安全的单例(ARC或 非ARC)
- [九度][何海涛] 栈的压入压出
- jQuery对select操作(2)
- 1792 关于数论中的互质数的最大不能组合数