数据库版本管理工具flyway
引入flyway_core jar包
java 代码实现
public class FlywayMigration {
@Resource
private DataSource dataSource;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public void migration() {
Flyway flyway = new Flyway();
flyway.setDataSource(dataSource);
flyway.setInitOnMigrate(true);
flyway.setTable("schemas_version");// 设置存放flyway metadata数据的表名
// 设置flyway扫描sql升级脚本,java升级脚本的目录路径或包路径
flyway.setLocations("database", "com.navinsight.holoviewer.back.transverse.util");
flyway.setEncoding("UTF-8");// 设置sql脚本文件的编码
flyway.setValidateOnMigrate(true); // 设置执行migrate操作之前的validation行为
try {
flyway.migrate();
} catch (Exception e) {
flyway.repair();
e.printStackTrace();
}
}
}
sql文件命名规范:V+版本号+两个_+描述+.sql
在Spring 中根据上面实现的类来定义(实例化)一个bean
<bean id="flywayMigration" class="com.kedacom.flywaydemo.FlywayMigration" init-method="migrate">
<property name="dataSource" ref="dataSource" />
</bean>
如果启动有问题,可以设置:
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" depends-on="flywayMigration">
<property name="dataSource" ref="dataSource" />
</bean> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" depends-on="flywayMigration">
<property name="dataSource" ref="dataSource" />
</bean>
数据库版本管理工具flyway的更多相关文章
- [jOOQ中文]3. 数据库版本管理工具Flyway
https://segmentfault.com/a/1190000010526452 在执行数据库迁移时,我们推荐使用jOOQ与Flyway - 数据库迁移轻松. 在本章中,我们将简单的来使用这两个 ...
- 数据库版本管理工具--Flyway的使用
软件开发正常流程是:开发环境 ---> 测试环境 ----> 产环境 在开发过程中经常需要变更数据库: 表结构变更. 基础数据变更. 最直接的做法是:用客户端连上数据库直接修改. 依次修 ...
- 数据库版本管理工具Flyway(4.0.3)---介绍(译文)
Flyway Evolve your Database Schema easily and reliably across all your instances 简单的.可靠的升级(发展)你的数据库模 ...
- 数据库版本管理工具Flyway——基础篇
Flyway 默认规约 SQL 脚本文件默认位置是项目的源文件夹下的db/migration 目录. Java 代码默认位于db.migration 包. SQL 脚本文件及Java 代码类名必须遵循 ...
- 数据库版本管理工具Flyway(4.0.3)---工作机制(译文)
How Flyway works The easiest scenario is when you point Flyway to an empty database. 最容易的方案是Flyway指向 ...
- 【flyway】开源的数据库版本管理工具【migration】
开源的数据库版本管理工具[migration] 记录
- 在SpringBoot中使用flyway进行数据库版本管理
本文大纲 flyway是什么 能帮助我们解决什么问题 springboot环境下使用flyway flyway的工作原理 一.flyway是什么 Flyway是一个开源的数据库版本管理工具,并且极力主 ...
- Java敏捷数据库迁移框架——Flyway
1.引言 想到要管理数据库的版本,是在实际产品中遇到问题后想到的一种解决方案,当时各个环境的数据库乱作一团,没有任何一个人(开发.测试.维护人员)能够讲清楚当前环境下的数据库是哪个版本,与哪个版本的应 ...
- 使用alembic进行数据库版本管理
前言 随着项目业务需求的不断变更,数据库的表结构修改难以避免,此时就需要对数据库的修改加以记录和控制,便于项目的版本管理和随意的升级和降级. Alembic就可以很好的解决这个问题.Alembic是S ...
随机推荐
- vue 之 面向对象
JavaScript 语言中,生成实例对象的传统方法是通过构造函数. function Animal(name,age){ this.name = name; this.age = age; } An ...
- Android 中 吐司显示不出来的原因分析
当你发现你的toast的show方法的确被执行了,但是却没有在界面中显示出来, 有问题的地方可能有两点: 1.Context上下文对象有问题,不是当前的上下文对象或者什么的: 2.message(即T ...
- 线程池ThreadPool实现异步多线程
ThreadPool线程池的主要方法: 1. public static Boolean QueueUserWorkItem(WaitCallback wc, Object state); WaitC ...
- c语言——数组指针和通过指针引用数组元素的方法总结
1.数组指针:即指向数组的指针 那么, 如何声明一个数组指针呢?int (* p)[10]; /*括号是必须写的,不然就是指针数组:10是数组的大小*/1拓展:有指针类型元素的数组称为指针数组. 2. ...
- c语言参考书籍
很惭愧没能把c++学的很好,毕竟离开始工作只有2年时间,对自己要求不要过高,慢慢来吧.话说知道自己的不足,以后要更加抓紧了!fighting~ 现在计划着把c语言给学习一下了,当然这次指的是深入地学习 ...
- ajax遍历数据生成下拉框
<script type="text/javascript"> function GetEQIDList(ModuleID) { $. ...
- P4449 于神之怒加强版
\(\color{#0066ff}{ 题目描述 }\) 给定n,m,k,计算 \(\sum_{i=1}^n \sum_{j=1}^m \mathrm{gcd}(i,j)^k\) 对1000000007 ...
- #6145. 「2017 山东三轮集训 Day7」Easy 动态点分治
\(\color{#0066ff}{题目描述}\) JOHNKRAM 最近在参加 C_SUNSHINE 举办的聚会. C 国一共有 n 座城市,这些城市由 n−1 条无向道路连接.任意两座城市之间有且 ...
- win10系统重装
问题描述 win10开启热点网卡坏了,没折腾好.然后把系统网卡折腾坏了. 所以重装了系统,写下我的环境从零到晚上的过程 1安装系统 用WePE安装win10,镜像采用:cn_windows_10_en ...
- 2017第八届蓝桥杯决赛(C++ B组)2.磁砖样式
磁砖样式 小明家的一面装饰墙原来是 310 的小方格. 现在手头有一批刚好能盖住2个小方格的长方形瓷砖. 瓷砖只有两种颜色:黄色和橙色. 小明想知道,对于这么简陋的原料,可以贴出多少种不同的花样来. ...