首页 > 其他分享 >Flyway 使用流程(简单使用)

Flyway 使用流程(简单使用)

时间:2023-08-17 15:36:53浏览次数:36  
标签:__ 流程 SQL flyway Flyway sql 使用 true 数据库

官网: https://flywaydb.org/documentation/api/

Flyway 是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本。

在项目或产品中,很难一开始就把业务理清楚,把数据库表设计好,因此数据表也会在迭代周期不断迭代。在Java应用程序中使用Flyway,能快速有效地用于迭代数据库表结构,并保证部署到测试环境或生产环境时,数据表都是保持一致的。(本人之前接触项目时候有使用,确实可以避免部署新环境时候遗漏SQL脚本)

Maven项目:

引入jar坐标

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>5.2.1</version>
</dependency>

配置文件配置1(enabled:为true时开启flyway执行脚本):

flyway:
  enabled: false
  validate-on-migrate: true
  table: schema_version
  baselineOnMigrate: true

项目配置文件下导入SQL要执行的脚本(举例):

Flyway 使用流程(简单使用)_sql

脚本依赖添加规则按升序添加版本号,V__ .sql

Flyway 使用流程(简单使用)_数据库_02

注意:名称中和 之间是两个下划线!(举例):V1.0.1__init_tables.sql 延续版本 V1.0.2__init_tables.sql 以此类推;

脚本文件是SQL完整语句;

版本要对应,后面的说明可以随意,最好与SQL执行语句语义相同;

当系统升级时又需要做数据迁移,我们只需在 db/migration 目录下再放置新版本的 sql 文件即可。

如果 flyway 不是项目初期引入,而是在数据库已有表的情况下引入时必须设置 baseline-on-migrate: true,设置该配置启动项目后,flyway 就会在数据库中创建 schema_version 表,并且会往该表中插入一条 version = 1 的建表记录,如果迁移数据有 V1__ 开头的文件,扫描文件会忽略该文件不执行迁移,进而可能引发其他迁移数据出错的问题。

当执行脚本为已经执行了没有报错的情况下就会跳过执行;不会进行2二次操作;

在使用过程中,当启动项目报错看具体报错参数进行修改,有时候是执行记录表配置参数不一致导致,需要找到记录表修改表对应数据;与之对应;

标签:__,流程,SQL,flyway,Flyway,sql,使用,true,数据库
From: https://blog.51cto.com/u_16226278/7123165

相关文章

  • vscode使用巧技
    1.快捷键展开折叠代码:ctrl+shift+[ctrl+shift+]ctrl+shift+L--同时选中所有相容内容alt+click--同时选择多个单词f2--重命名文件alt+上下键--移动整行或多行1.1vetur--让.vue文件高亮和有语法提示VueVsCodesnippets--快捷写代码2.文件图标库--必备vsco......
  • 如何在Linux系统上查看CPU使用率?
    Linux是一种开源操作系统,也被广泛应用于服务器和嵌入式设备上,那么作为一个服务器操作系统,监控系统资源的使用情况是非常重要的,那么该如何在Linux系统上查看CPU使用率呢?以下是详细的内容:1.使用top命令top命令是一个常用的Linux系统监控命令,可以实时查看系统的进程和资......
  • spring缓存使用
    参考文献https://www.cnblogs.com/fashflying/p/6908028.html如有侵权,请联系删除 一、配置:1.依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency>2.bean注入......
  • BOSHIDA DC电源模块使用可靠电容的重要性
    BOSHIDADC电源模块使用可靠电容的重要性现今,DC电源模块已成为许多电子设备的核心零部件。在各种设备中,电源模块扮演着将交流电转换为直流电的重要角色。而在电源模块中,电容作为重要的电子元件之一,可以起到储能滤波、干扰抑制、稳压、耦合等作用。因此,使用可靠电容在DC电源模块中......
  • 使用NineData实现亿级别MySQL大表迁移
    MySQL作为当前应用最广泛的开源关系型数据库之一,具有高性能、稳定性和易用性等特性,是许多网站、应用和商业产品的主要数据存储。在一些场景中,如果出现单表行数上亿的情况,就可能需要开发和DBA对大表进行优化:分表、归档或扩容操作,而在这些操作中都涉及了对数据的迁移。所以,提供高......
  • 使用C#创建安装Windows服务程序(最全教程)
    开发语言:C#开发环境:VisualStudio2022微软官方文档:https://learn.microsoft.com/zh-cn/dotnet/framework/windows-services/最近在公司要求使用Windows服务作为消息队列的消费者,所以自行研究了一下C#中Windows服务如何创建以及如何使用,以及部署的方式。我是西瓜程序猿,此篇......
  • 云原生之使用Docker部署webos私有云盘
    (云原生之使用Docker部署webos私有云盘)一、webos介绍1.webos简介WebOS是一个支持多种存储,云端存储&协同办公新体验:如Windows11体验的私有云盘/企业网盘。完全支持私有化部署,存储安全可控、数百种文件格式在线预览、编辑和播放、轻松分享。高效协作,细粒度权限管控全平台客户端......
  • 接口返回图片使用什么类型_JavaWeb
    publicResponseEntity<byte[]>icon(){//第三方接口返回的图片验证码ResponseEntity<byte[]>response=restTemplate.getForEntity(url,byte[].class);……//由后端转发此请求,是因为此处需要做一些特殊处理......
  • Echarts图表的使用以及相关配置
    前言1、Echarts简介Echarts,全称EnterpriseCharts,商业级数据图表,一个纯Javascript的图表库,能够流畅的运行在PC以及移动设备上,兼容当前绝大部分浏览器。为我们许多提供直观,生动,可交互,可高度个性化定制的数据可视化图表。能够支持折线图、柱状图、散点图、K线图、饼图、雷达图、和......
  • VSCode使用入门
    学习导航:VSCode入门MarkDown在VSCode环境下使用......