`
liuxing87327
  • 浏览: 82620 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用flyway对应用的数据库版本控制

阅读更多
转载自:http://kkuang.net/why-db-migration-tools-flyway/

 


 

为什么要使用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 命名

image

script 目录

flyway执行时,默认读取的目录是classpath:/db/migration
我们项目中就放在/resource/db/migration

文件名

image
该文件名由: 
* prefix: default: V (大写哦)
* version: 版本号,也可以使用大小版本组合的方式,小版本号用单_区分 
* separator: 分隔符,双下划线__ 
* description: 描述(你懂得,必须要有意义) 
* suffix: 后缀 default: .sql

再也不用担心,各环境的数据库不一致了。

 

  • 大小: 610.3 KB
分享到:
评论

相关推荐

    数据库版本控制Flyway的demo

    本Demo将详细介绍如何使用Flyway进行数据库版本控制。 Flyway的核心概念是迁移(Migrations),每个迁移代表数据库的一个版本变化。通过应用一系列有序的迁移,Flyway可以帮助开发者跟踪和管理数据库的结构变更,如...

    java版本控制(数据库版本控制)

    Java作为一种广泛应用的编程语言,提供了多种实现数据库版本控制的方法。本篇文章将深入探讨“java版本控制(数据库版本控制)”,并结合备忘录设计模式来阐述其原理和实践。 首先,我们来理解什么是备忘录设计模式...

    SpringBoot整合flyway实现步骤解析

    在SpringBoot应用程序中,我们可以使用Flyway的自动化机制来执行数据库版本控制。Flyway会自动地执行版本控制脚本,以确保数据库的版本控制正确。 五、 Advantages of using Flyway with SpringBoot 使用Flyway与...

    flyway-4.0.3数据库执行工具

    Flyway是一款开源的数据库版本控制工具,用于管理数据库版本,帮助开发者进行数据库迁移。在数据库应用开发中,随着项目的迭代,数据库结构的变化是不可避免的,Flyway提供了一种规范化的、自动化的方式来跟踪、管理...

    flyway数据库版本管理

    Flyway的核心优势在于能够独立于应用程序管理数据库变更,支持自动化的数据库版本升级,并具备一套内置的标准规范,无需复杂的配置即可高效运行。 Flyway允许用户使用SQL脚本或Java代码编写迁移脚本(Migrations)...

    flyway-springboot.zip_springboot集成flyway数据库版本管理工具

    总之,Spring Boot集成Flyway极大地简化了数据库版本管理的工作,使得数据库的变更与应用的发布更加协调。通过合理地使用Flyway,可以避免数据库版本冲突,提高开发效率,同时保证数据的一致性和安全性。

    详解Spring Boot中使用Flyway来管理数据库版本

    Spring Boot 中使用 Flyway 管理数据库版本 在实际开发中,我们经常会遇到数据库版本管理的...在 Spring Boot 应用中使用 Flyway 管理数据库版本可以解决数据库版本管理的问题,使得数据库结构的管理更加方便和可靠。

    flyway 5.1.1-windows 数据库升级降级工具

    Flyway 是一个开源的数据库版本控制工具,专为管理数据库迁移而设计。它允许开发者以结构化和自动化的方式处理数据库的版本升级和降级,从而确保数据库与应用程序代码的同步。在本例中,我们讨论的是Flyway 5.1.1 的...

    Spring Boot 集成 Flyway,数据库也能做版本控制,太牛逼了!(csdn)————程序.pdf

    Flyway是一个数据库版本控制工具,它的存在是为了让数据库的变化也能被跟踪和管理,类似于我们所熟知的Git或SVN这样的代码版本控制工具。传统上,数据库的变更往往需要人工维护和同步,这可能导致数据不一致的问题,...

    数据库版本的控制

    2. Flyway:另一个流行的开源工具,Flyway也提供跨数据库的版本控制。它使用SQL脚本来描述数据库变更,并且有一个清晰的变更历史表,使得数据库状态一目了然。 3. Git-based solutions:有些团队选择使用Git本身来...

    Java中实现数据库版本控制的策略与实践

    数据库版本控制是确保数据库与应用代码同步演化的关键实践。通过使用如Flyway和Liquibase这样的工具,我们可以有效地管理数据库的变更历史,提高团队协作效率,并简化数据库的跨环境部署。掌握数据库版本控制的策略...

    flyway-commandline

    Flyway通过提供一种标准化的方式来跟踪、应用数据库变更,确保了数据库状态的一致性。 标题中的"flyway-commandline"指的是Flyway的命令行界面版本。这个版本允许用户在终端或命令提示符下执行 Flyway 的操作,无需...

    SpringBoot整合Flyway的方法(数据库版本迁移工具)

    Flyway是一个开源的数据库版本管理工具,可以独立于应用实现管理并跟踪数据库的变更。Flyway根据自己的约定,不需要复杂的配置就可以实现数据的Migrate。Migrations可以写成SQL脚本,也可以写在Java代码中,Flyway还...

    Flyway数据库迁移工具详解.docx

    《Flyway数据库迁移工具详解》 数据库迁移是软件开发中不可或缺的一部分,特别...无论是新项目还是已有项目的后期集成,Flyway都能提供强大的支持,确保数据库的版本控制与代码保持一致,减少因数据库差异带来的困扰。

    分享微服务合并之多数据源整合(Dynamic Datasource)和Flyway对多数据源进行数据库脚本管理DEMO

    本文将详细讲解如何使用Dynamic Datasource进行多数据源整合,并利用Flyway对这些数据源进行数据库脚本管理,以实现高效、灵活的应用开发和维护。 Dynamic Datasource是一种动态数据源解决方案,它允许在运行时动态...

    Java_Flyway由Redgate数据库迁移变得容易.zip

    Java Flyway是由Redgate Software开发的一个开源数据库迁移工具,它使得在Java项目中管理数据库版本变得简单而有序。这个工具的核心理念是将数据库的结构变化(例如创建表、视图、存储过程等)视为代码,使得数据库...

    flyway简单测试工程

    Flyway通过版本控制的方式来管理数据库,每个数据库变更被当作一个版本,存储在特定的脚本文件中。当系统部署时,Flyway会按照版本顺序依次执行这些脚本,确保数据库与代码同步。 在“TestFlyAway”这个压缩包中,...

    数据库版本控制:Java实现与最佳实践

    数据库版本控制是确保数据一致性和完整性的关键技术。通过选择合适的工具和方法,可以有效地管理...本文提供的代码示例和实践指南,可以帮助开发者在实际工作中应用数据库版本控制技术,打造高效、可靠的数据库系统。

    Java基础学习总结(183)—— Flyway 在项目中迁移数据实践.pdf

    Java基础学习总结(183)—— Flyway 在项目中迁移数据...在多环境、多分支的项目中,使用Flyway是确保数据库一致性的重要手段,它使得数据库的版本控制与代码版本控制一样简单,为企业的项目迭代提供了强大的支持。

Global site tag (gtag.js) - Google Analytics