SpringBoot项目集成Flyway进行数据库版本控制的详细教程
作者:Cug_wangww 发布时间:2023-11-24 05:20:33
Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。
第一步:pom.xml添加maven依赖
<!-- https://mvnrepository.com/artifact/org.flywaydb/flyway-core -->
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>5.0.7</version>
</dependency>
第二步:开启Flyway支持,在application.properties文件添加Flyway配置
# FLYWAY (FlywayProperties)
flyway.baseline-version=1.0.0
flyway.enabled=true
flyway.sql-migration-prefix=V
flyway.sql-migration-suffix=.sql
flyway.baseline-on-migrate=true
flyway.location=db/migration
第三步:在resource目录下创建db/migration目录添加sql脚本
验证是否成功:项目启动时,会运行flyway执行sql语句.生成schema_version表,用于记录sql执行情况.
当sql文件修改后.比如多个空格,项目启动时,该sql对应的checksum字段与表记录的不一致会报错.
注意事项:
FlywayProperties参数配置详解
flyway.baseline-version 执行基线时用来标记已有Schema的版本。(默认值:1)
flyway.enabled 开启Flyway。 (默认值: true 。 )
flyway.sql-migration-prefix SQL迁移的文件名前缀。 (默认值: V 。 )
flyway.sql-migration-suffix SQL迁移的文件名后缀。 (默认值: .sql 。 )
flyway.baseline-on-migrate 在没有元数据表的情况下,针对非空Schema执行迁移时是否自动调用基线。
flyway.location 迁移脚本的位置。 (默认值: db/migration 。 )
sql文件版本号命名的规范
每个公司的规范肯定不一样.开发时,只需要项目内遵循该规范即可,规范的确定并没有对错.提供一种sql文件命名规范仅供大家参考.
来源:https://blog.csdn.net/Cug_wangww/article/details/81150417


猜你喜欢
- 1.下载JDK查看最新:http://www.oracle.com/technetwork/java/javase/downloads/in
- 流程控制语句是C语言中最基本的判断语句,通常我们可以使用IF来构建多分支结构,但同样可以使用Switch语句构建,Switch语句针对多分支
- 这篇文章主要介绍了Java JVM程序指令码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- BigDecimal的舍入模式(RoundingMode)BigDecimal.divide方法中必须设置roundingMode,不然会报
- 面试题1:你们是怎样保存用户密码等敏感数据的?本题回答参考朱晔的《Java业务开发常见错误100例》我们知道,用户名、密码、身份证等都属于用
- 起源最近公司要做多租户,Mybatis-Plus的多租户插件很好用,但是有一个场景是:字典表或者某些数据表,一些数据需要在各个租户之间共享,
- ionic App 解决android端在真机上 tab处于顶部的Bug在app.js 页面中添加以下代码.config(function(
- 有些情况下,在开发一些C#小项目的时候,交付给别人用的时候就是单独EXE文件,但是若涉及什么EXCEL,图片什么的时候,比较麻烦,这时候可以
- 1.先下载NuGet包(ZXing.Net)2.新建控制器及编写后台代码using System;using System.Collecti
- List映射表List列表是一个java集合存储在序列中的元素,并允许重复的元素。此接口的用户可以精确地控制,其中列表中的每个元素插入。用户
- C#利用win32 Api 修改本地系统时间、获取硬盘序列号,可以用于软件注册机制的编写!using System;using System
- 什么是RecyclerView关于RecyclerView,是一个主要用于展示和回收View的有一个控件,在官用了一句话来概括Recycle
- Android中Uri和Path之间的转换原因调用系统拍照应用,拍照后要保存图片,那么我们需要指定一个存储图片路径的Uri。这就涉及到如何将
- C++虚类相当于java中的抽象类,与接口的不同之处是:1.一个子类只能继承一个抽象类(虚类),但能实现多个接口2.一个抽象类可以有构造方法
- 场景:最新的leakCanary2.8.1:debugImplementation 'com.squareup.leakcanary
- 这是主要使用到的jar 文件是:spring mvc +apache common-fileuplad第一步:web.xml 文件。【重点是
- 本文实例为大家分享了RecyclerView实现侧滑拖拽功能的具体代码,供大家参考,具体内容如下准备ItemDragListenerpack
- 什么是线程池线程池(thread pool)是一种线程使用模式。线程过多或者频繁创建和销毁线程会带来调度开销,进而影响缓存局部性和整体性能。
- Spring @RequestParam对象绑定在Spring中,如果在方法参数列表中使用@RequestParam标注多个参数,会让映射方
- 合并有序数组的实现java版本:实例代码public class Merge {//合并有序数组 public static v