为什么要使用DB migration tools
我们可以想象,多位开发人员,多个数据库环境。
偶尔就出现:哎呀!集成环境的数据库忘记更新了。
为什么推荐flyway
简单,好用
先前有用过mybatis中的migration,但经常出现莫名其名的异常,并且也不支持多条SQL在1个文件中。
最开始在使用flyway时,没有downgrade。有些觉得奇怪,像mybatis的migration和rails中,都会支持。
后来想想,其实对数据库的downgrade真是要甚用(最好不用),会陷入麻烦,不清楚真实的版本变化。宁可重新写个script downgrade。
支持java调用及spring集成
这就能在应用程序中,直接进行管理。
我采用的方式,是根据web应用在不同的环境启动时,进行不同环境 db migration.
在往集成发布时,随tomcat执行数据库的版本同步。
具体的使用,flyway官方文档详细简洁,几下就轻松搞定。
跟spring集成
这也是非常非常的简化
<bean id="flyway" class="org.flywaydb.core.Flyway" depends-on="dataSource_flyway" lazy-init="false"> <property name="dataSource" ref="dataSource_flyway"/> </bean> <bean id="jFlyway" class="net.kkuang.flyway.DbMigration" lazy-init="false" depends-on="flyway"> <property name="flyway" ref="flyway"/> </bean>
/** * 执行DbMigration * 当应用服务启动时会自动执行 * * User: 闷骚乔巴 * Date: 2014-12-02 */ public class DbMigration { private Log log = LogFactory.getLog(DbMigration.class); private Flyway flyway; @PostConstruct public void run() { log.info("[Start] DbMigration run .. "); flyway.migrate(); log.info("[End] DbMigration run .. "); } public void setFlyway(Flyway flyway) { this.flyway = flyway; } }
SQL Script 命名
script 目录
flyway执行时,默认读取的目录是classpath:/db/migration
我们项目中就放在/resource/db/migration
文件名
该文件名由:
* prefix: default: V (大写哦)
* version: 版本号,也可以使用大小版本组合的方式,小版本号用单_
区分
* separator: 分隔符,双下划线__
* description: 描述(你懂得,必须要有意义)
* suffix: 后缀 default: .sql
再也不用担心,各环境的数据库不一致了。
相关推荐
数据库版本控制Flyway的demo
flyway支持达梦数据库版本jar包,拿来即用
Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations可以写成SQL脚本,也可以写在Java代码中,不仅支持Command Line和Java API,还支持...
springboot集成flyway实现数据库版本自动升级及冲突问题解决,灵活实现升级语句的自主执行
flyway-4.0.3数据库执行工具,可用于执行flyway语句,快速生成数据库表初始化工作
主要介绍了SpringBoot项目集成Flyway进行数据库版本控制,本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
主要介绍了详解Spring Boot中使用Flyway来管理数据库版本,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
flyway-springboot.zip_springboot集成flyway数据库版本管理工具,用flyway,可以自动监控sql脚本的变化,实现sql脚本的版本管理
Spring Boot 集成 Flyway,数据库也能做版本控制,太牛逼了!(csdn)————程序
kingbase 数据库 flyway 插件,导入此jar在依赖 flyway-8.5.13.jar 版本即可,人大金仓 数据库 国产数据库
基于flyway的6.5.7版本修改flway-core ,支持国产数据库,暂时处于自测阶段,使用连接kingbase进行管理正常。
Flyway 就是用来解决像这样的数据库迁移的工具,接入了 Flyway 过后,在数据库中会生成一张默认名为flyway_schema_history 的数据表,用来追踪数据库的变化。程序启动的时候 Flyway 都会在文件系统或者 classpath ...
Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Java 代码中,不仅支持 Command Line 和 Java API,...
本文适合但不限于软件开发人员阅读。本文档能够使阅读者对flyway有一个宏观且全面的了解,并且能够在Springboot应用中配置并开始使用flyway对数据库进行管理。文档最后还包含了常见问题说明
用于数据库升级,降级,简单实用 亲测可用,大家有什么不懂得直接留言
在Java EE / Hibernate应用程序中使用运行数据库迁移的示例项目。 设置 使用docker启动数据库的空实例: docker run -p5432:5432 --name postgres postgres 使用运行应用程序: java -jar payara-micro-5.181.jar ...
Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Java 代码中,不仅支持 Command Line 和 Java API,...
DBVC:PHP中的数据库版本控制 DBVC的灵感来自 ,它使用了DBV使用的一些核心类。 但是,与DBV不同,DBVC 设计用于CLI 专为仅以正向模式应用的修订而设计,但也可能无序工作。 设计为类似于Flyway DB迁移( ) ...
它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本。 在项目或产品中,很难一开始就把业务理清楚,把数据库表设计好,因此数据表也会在迭代周期不断迭代。在Java应用程序中使用...