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

flyway的使用

sql 
阅读更多
前言:最近工作上遇到个问题,项目开发过程中,开发代码可以通过svn来版本控制,但数据库又该如何来管理呢?多个人接触数据库,当对表、字段或数据修改后,又怎么来同步呢?经过苦寻,发现了个叫flyway的开源项目:http://flywaydb.org/,java编写,官方的介绍就是我的初衷,岂能不心动?

官网是英文的,查了下居然没有中文文档,难道没有中国人用?

慢慢看了下官方文档,试着做了下,一次成功!(离开电脑,蹦达几下,继续坐回电脑)

自己写个小教程吧
1、将flyway-core-2.3.jar放到项目lib中,下载地址:http://flywaydb.org/getstarted/download.html

2、在src目录下建立保存sql版本文件的路径:src/db/migration,flyway默认查找路径,可以改,但没必要。

3、在sql版本文件路径中增加sql文件,命名规则,如:V1__2014_4_13.sql ,V开头+版本号+双下划线+描述,描述中可以有下划线,后缀为sql。别问能不能修改这个规则,否则,我咬你。

4、增加flyway的java类,有命令行工具,但还是java类用起来方便,如下:

Java代码 复制代码 收藏代码
1.package com.cms.flyway; 
2. 
3.import java.io.IOException; 
4.import java.util.Properties; 
5. 
6.import com.googlecode.flyway.core.Flyway; 
7. 
8.public class FlywayApp { 
9.     
10.    // 读取数据库配置参数 
11.    private static Properties config = new Properties(); 
12.    static { 
13.        try { 
14.            config.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("activerecord.properties")); 
15.        } catch (IOException e) { 
16.            e.printStackTrace(); 
17.        } 
18.    } 
19.     
20.    // 执行数据库版本升级 
21.    public static void migration() { 
22.        // Create the Flyway instance 
23.        Flyway flyway = new Flyway(); 
24.         
25.        // Point it to the database 
26.        flyway.setDataSource(config.getProperty("com.et.ar.ActiveRecordBase.url"), config.getProperty("com.et.ar.ActiveRecordBase.username"), config.getProperty("com.et.ar.ActiveRecordBase.password")); 
27.        flyway.setInitOnMigrate(true); 
28.         
29.        // Start the migration 
30.        flyway.migrate(); 
31.    } 
32.} 




5、在服务器启动的时候或者定时器 执行该类的migration()方法即可。



6、第一次执行会生成一个专门存放数据库schema_version的表





7、以后数据库有了新的改动,导出新版本sql文件(如:mysqldump -u -p databasename>/xx.sql)改为新版本命名文件放到db.migration路径下,flyway会自动帮你更新数据库版本的。
分享到:
评论

相关推荐

    深入浅析java中flyway使用简介

    "flyway使用简介" Flyway是一个独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。它提供了一个简单的方式来管理和跟踪数据库变更,确保数据库版本的一致性。 Flyway的基本命令 Flyway主要基于6种...

    浅谈SpringBoot之开启数据库迁移的FlyWay使用

    浅谈SpringBoot之开启数据库迁移的FlyWay使用 SpringBoot是一种流行的Java框架,用于构建web应用程序。随着项目的发展,数据库迁移变得越来越重要。Flyway是一个流行的数据库迁移库,提供了一种简单、灵活的方式来...

    flyway手动同步包

    2. **迁移脚本**:Flyway使用命名约定的SQL脚本来表示数据库的迁移。例如,`V1__Initial_schema.sql` 表示第一个迁移,创建初始数据库架构。脚本中的`V`表示版本,`__`后是描述。 3. **命令行工具**:Flyway提供了...

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

    Spring Boot 中使用 Flyway 管理数据库版本 在实际开发中,我们经常会遇到数据库版本管理的问题。由于系统的程序版本可以通过 Git 得到的很好的版本控制,而数据库结构并没有。尽管我们可以通过 Git 进行语句的版本...

    SpringBoot整合flyway实现步骤解析

    在使用Flyway之前,我们需要在pom.xml文件中引入Flyway的依赖项,如下所示: ```xml <groupId>org.flywaydb <artifactId>flyway-core ``` 二、配置Flyway 在SpringBoot应用程序中,我们需要配置Flyway,...

    SpringBoot项目中配置Flyway.docx

    在Spring Boot框架中,默认封装了Flyway,只需要简单的配置就可以使用,其使用遵循Spring Boot框架的“约定优于配置”的思想。 Flyway的主要特点: * 独立于应用实现并管理数据库变更 * 支持数据库版本自动升级 * ...

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

    Spring Boot,作为流行的Java应用框架,提供了与Flyway的无缝集成,使得在Spring Boot项目中使用Flyway变得更加便捷。本篇将详细介绍Spring Boot集成Flyway进行数据库版本管理的过程及相关的知识点。 首先,让我们...

    Flyway的简单介绍及使用详解

    1. **版本控制**:Flyway使用版本号来追踪数据库的变更,每个版本对应一个或多个SQL脚本。版本号遵循`V+版本号+__+描述`的命名规则,如`V2017.9.30__Update.sql`,确保唯一性。 2. **脚本存储**:默认情况下,...

    flyway简单测试工程

    【Flyway:数据库版本管理利器】 Flyway是一款强大的开源数据库版本管理工具,它使得数据库的迁移变得简单且有序。...在实际项目中,结合标签“flyway demo”,我们可以参考此工程,快速上手并熟练掌握Flyway的使用。

    flyway-commandline

    标签"flyway"和"commandline"进一步强调了我们关注的是使用命令行操作Flyway。在实际应用中,你可以通过输入一系列命令来执行诸如迁移(migrate)、清洁(clean)、信息(info)等操作,对数据库进行版本控制。 在...

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

    1. **初始化**:使用`flyway clean`命令清空所有迁移历史,`flyway init`命令创建一个初始的迁移版本。 2. **迁移**:使用`flyway migrate`命令应用所有未执行的迁移脚本,更新数据库。 3. **回滚(降级)**:如果...

    flyway-6.4.2.rar

    1、解压flyway-commandline-6.4.2-linux-x64.tar.gz或flyway-commandline-6.4.2-windows-x64.zip包; 2、把path目录里的lib目录拷贝到解压... lib下的其它jar包是为了在命令行情况下可以使用logback方式进行打印日志;

    flyway数据库版本管理

    Flyway允许用户使用SQL脚本或Java代码编写迁移脚本(Migrations),不仅支持命令行(Command Line)和Java API接口,还能集成到各种构建工具(如Maven、Gradle)及框架(例如Spring Boot)中。这使得它能够在分布式...

    kingbase-flyway

    kingbase 数据库 flyway 插件,导入此jar在依赖 flyway-8.5.13.jar 版本即可,人大金仓 数据库 国产数据库

    flayway.rar

    - **版本管理**:Flyway使用版本号来追踪数据库的状态,每个迁移对应一个特定的版本,这样可以确保数据库始终处于已知的、一致的状态。 - **SQL脚本**:Flyway支持使用SQL脚本来执行数据库的迁移,这些脚本按照...

    flyway支持人大金仓数据库jar包

    基于flyway的6.5.7版本修改flway-core ,支持国产数据库,暂时处于自测阶段,使用连接kingbase进行管理正常。

    flyway-4.0.3数据库执行工具

    3. **初始化**:在初次使用Flyway时,可以创建一个特殊的迁移`V1__initial_schema.sql`,用于设置数据库的初始状态。这个脚本会在数据库中创建必要的表,如`schema_version`,用于存储Flyway的元数据。 4. **命令行...

    基于Flyway实现简化Spring Boot项目部署

    - `spring.flyway.encoding`: Flyway使用的字符编码。 - `spring.flyway.baseline-on-migrate`: 是否在迁移时设置基线。 - `spring.flyway.locations`: 定义数据库脚本的位置。 5. **总结** 使用Flyway简化...

    springboot 整合 flyway

    - **Java Migration**:除了SQL脚本,Flyway也支持使用Java类进行数据库迁移。创建Java类并实现`org.flywaydb.core.api.migration.jdbc.JdbcMigration`接口,Flyway会在适当的时候调用这些类。 - **Repeatable ...

    数据库版本控制Flyway的demo

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

Global site tag (gtag.js) - Google Analytics