flyway版本号_Flyway数据库版本控制的教程详解

前言:

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

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

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

自己写个小教程吧

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

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

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

package com.cms.flyway;

import java.io.IOException;

import java.util.Properties;

import com.googlecode.flyway.core.Flyway;

public class FlywayApp {

// 读取数据库配置参数

private static Properties config = new Properties();

static {

try {

config.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("activerecord.properties"));

} catch (IOException e) {

e.printStackTrace();

}

}

// 执行数据库版本升级

public static void migration() {

// Create the Flyway instance

Flyway flyway = new Flyway();

// Point it to the database

flyway.setDataSource(config.getProperty("com.et.ar.ActiveRecordBase.url"), config.getProperty("com.et.ar.ActiveRecordBase.username"), config.getProperty("com.et.ar.ActiveRecordBase.password"));

flyway.setInitOnMigrate(true);

// Start the migration

flyway.migrate();

}

}

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

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

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

总结

到此这篇关于Flyway数据库版本控制的教程详解的文章就介绍到这了,更多相关Flyway数据库版本控制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flyway是一个用于数据库版本控制的工具,类似于我们使用Git来管理代码版本。它可以帮助我们管理数据库的版本,通过执行SQL脚本来进行数据库的迁移操作。\[1\] Flyway会将每次执行过的SQL脚本的版本号和生成的checksum保存在数据库flyway_schema_history表。在下次执行数据库迁移时,Flyway会按照版本号从低到高的顺序执行SQL脚本。如果之前的版本号脚本已经执行过,则不会再次执行。如果之前版本的SQL脚本在执行过程修改,则会报错。\[2\] Flyway的工作流程可以参考Flyway官网的详细描述和介绍。\[2\] Flyway的作用是解决在产品发布过程数据库版本与代码版本不匹配的问题。通过使用Flyway,我们可以对不同环境的SQL进行迁移操作,确保数据库与代码的版本一致性。\[3\] #### 引用[.reference_title] - *1* [Flyway数据库版本控制](https://blog.csdn.net/qq_22596931/article/details/115537039)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Flyway 数据库版本控制](https://blog.csdn.net/qq_37196321/article/details/125379470)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值