springboot+flyway使用规范

article/2024/12/26 8:34:06
  1. 引用flyway,在pom.xml中引入flyway
<!--引入flyway的相关依赖5.2.1--><dependency><groupId>org.flywaydb</groupId><artifactId>flyway-core</artifactId><version>5.2.1</version></dependency>

  1. applicaton.properties配置
#flyway 配置# 是否启用flywayspring.flyway.enabled = true#脚本文件位置spring.flyway.locations = classpath:db/migrationspring.flyway.baseline-on-migrate = false#schema 名称,配置后,如果数据库中不存在对应的schema,则会自动创建spring.flyway.schemas = tollgate

  1. 数据库脚本规范

每一次数据库脚本更新都是一个新的版本,运行之后,不能再改这个版本,每个微服务独立维护数据库脚本。

命名规范 :  V+版本号(纯数字或者以小数点或者以下划线分隔的数字)+__(双下划线)+描述字符串(支持英文和下划线).

版本号:自增,每次都需要增加一位 ,如1,2,3,建议以1.0开始

描述字符串:建议是以操作类型(INIT,UPDATE)加上微服务名称,如果是更新的,再增加更新时间。

举例:

       

        1,V1.0__INIT_TOLLGATE.sql   初始化卡口微服务脚本。

        2,V1.1__UPDATE_TOLLGATE_20190522.sql   卡口微服务0522更新脚本

为什么使用flyway?

快速迭代过程,数据库版本难以控制,引入flyway,每次部署自动升级数据库。减少运维人员以及版本维护人员压力,并且能够平滑升级。

对大家有什么要求?

要求大家自己维护好脚本,对数据库做出的修改们需要把脚本按照命名规范放到指定的目录

有什么注意事项?

不支持降级,支持事务回滚,千万不要手动更改数据库表结构!!!更新前,做好备份!

flyway的初始创建有三个注意事项 : 

1、db.migration不要这样创建文件件   因为 classpath:db/migration不等于db.migration,因此最好先建立db文件夹,在建立migration文件夹;

2、最好不要使用@PostConstruct注解,因为启动微服务时会先启动PostConstruct里的方法,后启动flyway,可能造成方法无法读取还没有创建的数据库表;如果要使用,则使用下图注解

@DependsOn("flywayInitializer")

修饰

3、V1.0__INIT_TOLLGATE.sql第一个是两个下划线,请注意!

4.使用R可以重新执行已经修改过的sql文件

例子: R__V1.0__INIT_TOLLGATE.sq


http://chatgpt.dhexx.cn/article/7hg9jHmY.shtml

相关文章

Fly.js 学习

定义&#xff1a;一个支持所有JavaScript运行环境的基于Promise的、支持请求转发、强大的http请求库。可以让您在多个端上尽可能大限度的实现代码复用。 浏览器支持 ✔ ✔ ✔ ✔ ✔ > 8 其它支持的平台 支付宝小程序 目前Fly.js支持的平台包括&#xff1a;Node.js…

Minifly程序框架

原文链接&#xff1a;https://blog.csdn.net/lalala12ll/article/details/101613060 minifly四轴部分由NRF51822和STM32F411两个芯片共同控制。NRF51822主要负责无线通信和电源管理&#xff1b;STM32F411则负责接受、发送各种数据&#xff0c;以及数据融合从而进行pid控制。 程…

BirdFly代码总结

BirdControl源码 const {ccclass, property} cc._decorator;ccclass export default class BirdControl extends cc.Component {property(cc.Label)label: cc.Label null;propertytext: string hello;// LIFE-CYCLE CALLBACKS:onLoad () {cc.director.getPhysicsManager().e…

Flyway 搭建

一、总体搭建介绍 1.1、Flyway简介 Flyway 是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用&#xff0c;或者在Java应用程序中引入&#xff0c;用于管理我们的数据库版本。项目启动时&#xff0c;Flyway会自动运行&#xff0c;如果数据库中没有版本表&#xf…

Spring boot集成flyway

一、引入依赖&#xff08;以Maven项目为例&#xff09; spring boot项目首先引入数据库连接驱动依赖 <!-- jdbc 连接依赖&#xff0c;如果使用了mybatis或mybatis-plus&#xff0c;可直接引入对应mybatis依赖 --> <dependency><groupId>com.baomidou</gr…

开发flyray的初衷

开发flyray的初衷 一是为了自我学习&#xff0c;二是为了方便项目开发flyray项目介绍 使用SpringSpringMVCMybatisdubbox 开发的一套分布式基础框架&#xff0c;提供支付、对账、清结算、客户管理、营销活动、库存管理、搜索模块、rocketmq做统一的消息队列中心 使用技术 后…

flyway

需求&#xff1a; 目前环境太多套&#xff0c;而且每套的代码版本都是不一致的&#xff0c;再分支升级版本的时候每次都需要处理数据库的sql脚本&#xff0c;用人工核对容易出错或遗漏&#xff0c;为避免sql脚本混乱&#xff0c;需要统一的数据版本工具来进行维护。当前公司生…

springboot:集成flyway

文章目录 springboot&#xff1a;集成flyway一、简介二、Flyway工作流程三、配置文件使用Flyway添加相关配置创建脚本所在文件夹sql脚本命名规范启动测试 四、Flyway配置清单五、maven插件的使用migratebaselineclean&#xff08;慎用&#xff09;inforepairvalidateundo 六、f…

Firefly

Firefly(流萤): 中文对话式大语言模型在本文中&#xff0c;笔者将介绍关于Firefly&#xff08;流萤&#xff09;模型的工作&#xff0c;一个中文对话式大语言模型。https://mp.weixin.qq.com/s/TX7wj8IzD_EaMTvk0bjRtA一个支持中文的176B开源基础模型BLOOM&#xff1a;从数据源…

RIP 水平分割

水平分割 为了防止环路,RIP引入了水平分割机制,即从一个接口收到的路由更新,不会再从这个接口发出去,水平分割默认开启. 实验&#xff1a;RIP的水平分割 首先我们先查看R1和R3的路由表有什么异常

RIP水平分割实验

华为RIP水平分割实验 为了防止环路&#xff0c;BIP引入了水平分割机制&#xff0c;即从一个接口收到得路由更新&#xff0c;不会在从这个接口发出去&#xff0c;水平分割默认开启 实验拓补图如下 首先配置R1 system view [Huawei]sysname R1 [R1]int g0/0/0 [R1-Gigabi…

路由协议BGP之打破IBGP水平分割✍

为什么需要打破IBGP的水平分割&#xff1f; 因为IBGP水平分割&#xff0c;导致在一个AS内部若一台BGP路由器需要将通过其他AS学习到的路由传递给本地AS中的ibgp邻居时&#xff0c;需要和本地AS内部所有的BGP设备建立IBGP邻居关系&#xff1b;邻居关系数量成指数上升&#xff1…

解决IBGP的水平分割和BGP选路原则

解决IBGP的水平分割问题 IBGP水平分割&#xff1a;防止环路的产生 方法1&#xff1a;路由反射器(RR) 路由反射器可以反射所学习到的IBGP路由信息。 指定一台路由器称为 路由反射器&#xff08;RR&#xff09; 的时&#xff0c;必须在他的IBGP对等体关系中选择一个或者多个设备…

html中怎么接着水平线后面,html水平分割线怎么设置?html水平分割线的代码示例讲解...

在前端网页的开发中我们有时候需要用到水平分割线来分割不同的文档&#xff0c;会让整个网页看起来美观和整洁&#xff0c;也会凸显某一段文字的重要性&#xff0c;那么网页中水平分割线该如何实现呢&#xff1f; 本篇文章就给大家来分享一下html水平分割线的实现方法。 在html…

基于WPS的Word最佳实践系列(给标题添加水平分割线)

基于WPS的Word最佳实践系列&#xff08;给标题添加水平分割线&#xff09; 项目背景 在日常办公中&#xff0c;我们经常需要给标题添加一条水平分割线&#xff0c;将标题与正文内容分开&#xff0c;那么如何快速添加水平分割线呢&#xff1f; 项目实施 1. 添加水平分割线 …

5.2 BGP水平分割

5.2.2实验2&#xff1a;BGP水平分割 1. 实验目的 熟悉BGP水平分割的应用场景掌握BGP水平分割的配置方法 2. 实验拓扑 实验拓扑如图5-2所示&#xff1a; 图5-2&#xff1a;BGP水平分割 3. 实验步骤 &#xff08;1&#xff09;配置IP地址 R1的配置 <Huawei&g…

图像分割之水平集(Level Set)分割

几何活动轮廓模型——水平集分割&#xff1a;Active Contours Without Edges 水平集方法 水平集是跟踪轮廓和表面运动的一种数字化方法&#xff0c;它不直接对轮廓进行操作&#xff0c;而是将轮廓设置成一个高维函数的零水平集。这个高维函数叫做水平集函数。然后对该水平集函数…

BGP选路——本地优先级选路(+BGP路由水平分割机制)

目录 一、本地优先级特性 二、配置命令&#xff1a; 三、图解&#xff1a; 四、BGP路由水平分割机制 BGP路由13条选路顺序&#xff1a; 权重——本地优先级——本地始发——最短AS-PATH——起源属性——MED属性——EBGP路由优于IBGP——八——九——十——十一——十二——…

html文字段落分割,HTML设置水平分割线_html/css_WEB-ITnose

在Web中使用水平分割线可以分割不同的文字段落或者其它网页组件&#xff0c;轻松地修饰了段落排版&#xff0c;使之更美观。当然&#xff0c;水平分割线还可以更加明显地突出某一段重要的文字&#xff0c;使之更加醒目。 使用标签可以轻松地设置一条水平线。方法如下&#xff1…

初步了解BGP-2【update-source、水平分割、同步概念】

初步了解BGP-2【update-source、水平分割、同步概念】 目录 初步了解BGP-2【update-source、水平分割、同步概念】Update-sourceIBGP 水平分割IBGP与IGP的同步 Update-source 由于BGP无法像IGP那样自动发现邻居&#xff0c;而BGP的邻居需要手动指定邻居&#xff0c;一般情况下…