若依框架前后端分离版,集成数据库版本控制flyway

news2025/1/12 6:08:58
  1. 在admin模块的pom.xml增加依赖
        <!-- 数据库版本控制 -->
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
            <version>7.15.0</version>
        </dependency>
  1. 在admin模块下的resources 的配置文件spring下增加
  # 数据库版本管理
  flyway:
    #是否启用
    enabled: true
    # 字符编码
    encoding: utf-8
    # 对执行迁移时基准版本的描述
    baseline-description: BaseLineInitialize
    # 开始执行基准迁移时对现有的schema的版本打标签,默认值为1.
    baseline-version: 1.0.0
    # 是否允许无序的迁移,默认 false
    out-of-order: false
    # 当读取元数据表时是否忽略错误的迁移,默认false
    ignore-future-migrations: false
    # 可以支持多个location, 用','隔开
    locations: classpath:db/migration
    #是否创建元数据表
    validate-on-migrate: true
    # flyway 的 clean 命令会删除指定 schema 下的所有 table, 生产务必禁掉。这个默认值是false 理论上作为默认配置是不科学的。
    clean-disabled: false
    # 如果数据库不是空表,需要设置成 true,否则启动报错
    baseline-on-migrate: true
    # 版本控制日志表,默认flyway_schema_history,不同系统建议修改数据
    table: flyway_schema_history
  1. 在framework 下面定义flyway配置bean
package com.qilaike.framework.config;

import javax.annotation.PostConstruct;
import javax.sql.DataSource;

import org.flywaydb.core.Flyway;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FlywayConfig {

    @Autowired
    private DataSource dataSource;

    // 字符编码
    @Value("${spring.flyway.encoding}")
    private String encoding;

    // 对执行迁移时基准版本的描述
    @Value("${spring.flyway.baseline-description}")
    private String baselineDescription;

    // 是否自动执行基准迁移
    @Value("${spring.flyway.baseline-on-migrate}")
    private boolean baselineOnMigrate;

    // 指定 baseline 的版本号
    @Value("${spring.flyway.baseline-version}")
    private String baselineVersion;

    // 迁移时是否校验
    @Value("${spring.flyway.validate-on-migrate}")
    private boolean validateOnMigrate;

    // 是否允许无序的迁移
    @Value("${spring.flyway.out-of-order}")
    private boolean outOfOrder;

    // 当读取元数据表时是否忽略错误的迁移
    @Value("${spring.flyway.ignore-future-migrations}")
    private boolean ignoreFutureMigrations;

    // 当初始化好连接时要执行的SQL
    //@Value("${flyway.init-sql}")
    //private String initSql;

    @PostConstruct
    public void migrate() {
        Flyway flyway = Flyway.configure()
                .dataSource(dataSource)
                .encoding(encoding)
                .baselineDescription(baselineDescription)
                .baselineOnMigrate(baselineOnMigrate)
                .baselineVersion(baselineVersion)
                .validateOnMigrate(validateOnMigrate)
                .outOfOrder(outOfOrder)
                .ignoreFutureMigrations(ignoreFutureMigrations)
                //.initSql(initSql)
                .load();
        flyway.migrate();
    }

}
  1. 在admin模块下的resources下面增加目录db/migration
  2. 开始在db/migration下面增加sql文件,文件命名有要求在这里插入图片描述
    在这里插入图片描述
  3. 启动项目,看看自己的sql是否生效,生效则成功,其他情况自己解决去吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1195140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多因素验证如何让企业邮箱系统登录更安全?

企业邮箱系统作为基础的办公软件之一&#xff0c;既是企业内外沟通的重要工具&#xff0c;也是连接企业多个办公平台的桥梁&#xff0c;往往涉及到客户隐私、业务信息、企业机密等等。为了保护邮箱账户的安全&#xff0c;设置登陆密码无疑是保护账户安全的常用措施之一。然而随…

Delphi 12 重返雅典 (RAD Studio 12)

RAD Studio 12 的新功能&#xff1a; 以最新的平台版本为目标&#xff01; RAD Studio 12 提供对 iOS 17&#xff08;仅适用于 Delphi&#xff09;、Android 14 和 macOS Sonoma 的官方支持。RAD Studio 12 还支持 Ubuntu 22 LTS 和 Windows Server 2022。 Delphi 源代码的多…

Paimon 与 Spark 的集成(一)

Paimon Apache Paimon (incubating) 是一项流式数据湖存储技术&#xff0c;可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。Paimon 采用开放的数据格式和技术理念&#xff0c;可以与 ApacheFlink / Spark / Trino 等诸多业界主流计算引擎进行对接&#xf…

GoLong的学习之路(二十三)进阶,语法之并发(go最重要的特点)(锁,sync包,原子操作)

这章是我并发系列中最后的一章。这章主要讲的是锁。但是也会讲上一章channl遗留下的一些没有讲到的内容。select关键字的用法&#xff0c;以及错误的一些channl用法。废话不多说。。。 文章目录 select多路复用通道错误示例并发安全和锁问题描述互斥锁读写互斥锁 syncsync.Wait…

有符号数是如何判断正负符号位的?

文章目录 有符号数是如何判断正负符号位的&#xff1f; 运行结果&#xff1a; 有符号数是如何判断正负符号位的&#xff1f; #include<stdio.h> int main() {int input_data 0;printf("Please input the data ! \n");scanf("%d",&input_data);…

[C/C++]数据结构 链表OJ题:环形链表(如何判断链表是否有环)

题目描述: 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…

Excel表列序号

题意&#xff1a; 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入: columnTitle “A” 输出: 1 示例 2: 输…

C# .NET Core API Controller以及辅助专案

准备工作 Windows 10Visual Studio 2019(2017就有可以集中发布到publish目录的功能了吧)C#将方法封装(据说可以提高效率,就像是我们用的dll那种感觉新增专案作为我们API的辅助专案(作用类似dll&#xff0c;此处&#xff0c;你也可以在你自己的API专案里建文件夹&#xff0c;但…

线性代数-Python-04:线性系统+高斯消元的实现

文章目录 1 线性系统2 高斯-jordon消元法的实现2.1 Matrix2.2 Vector2.3 线性系统 3 行最简形式4 线性方程组的结构5 线性方程组-通用高斯消元的实现5.1 global5.2 Vector-引入is_zero5.3 LinearSystem5.4 main 1 线性系统 2 高斯-jordon消元法的实现 2.1 Matrix from .Vecto…

第一章 Object-XML 映射简介

文章目录 第一章 Object-XML 映射简介基础如何工作的映射选项IRIS 中的相关工具XML 文档的可能应用 第一章 Object-XML 映射简介 基础 将对象映射到 XML 一词意味着定义如何将该对象用作 XML 文档。要将对象映射到 XML&#xff0c;请将 %XML.Adaptor 添加到定义该对象的类的超…

一题三解(暴力、二分查找算法、单指针):鸡蛋掉落

涉及知识点 暴力、二分查找算法、单指针 题目 给你 k 枚相同的鸡蛋&#xff0c;并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f &#xff0c;满足 0 < f < n &#xff0c;任何从 高于 f 的楼层落下的鸡蛋都会碎&#xff0c;从 f 楼层或比它低的…

基于51单片机的万年历-脉搏计仿真及源程序

一、系统方案 1、本设计采用51单片机作为主控器。 2、DS1302采集年月日时分秒送到液晶1602显示。 3、按键年月日时分秒&#xff0c;心率报警上下限。 4、红外对接管传感器采集心率送到液晶1602显示。 5、心率低于下限或高于上限&#xff0c;蜂鸣器报警。 二、硬件设计 原理图如…

18 Linux 阻塞和非阻塞 IO

一、阻塞和非阻塞 IO 1. 阻塞和非阻塞简介 这里的 IO 指 Input/Output&#xff08;输入/输出&#xff09;&#xff0c;是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候&#xff0c;如果不能获取到设备资源&#xff0c;那么阻塞式 IO 就会将对应应用…

一台电脑使用多个gitee账号,以及提交忽略部分文件

目录 ​编辑 一&#xff1a;前言 二&#xff1a;解决方法 三&#xff1a;提交gitee时忽略文件 一&#xff1a;前言 在开发中&#xff0c;我们拥有不止一个 gitee 账号&#xff0c;通常而言一个是公司的&#xff0c;一个是私人的。有时候我们在公司写了一些自己的东西&#…

GS3661V1 3.7升压5V 3A SOT23-5封装 外置MOS 升压芯片 单节锂电升压5V 2.5-3A

GS3661V1 3.7升压5V 3A SOT23-5 外置MOS 升压芯片 单节锂电升压5V 2.5-3A

全新Inner-IoU损失函数!!!通过辅助边界框计算IoU有效提升检测效果

摘要 1 简介 2 方法 2.1 边界框回归模式分析 2.2 Inner-IoU 损失 3 实验 3.1 模拟实验 3.2 对比实验 3.2.1 PASCAL VOC上的YOLOv7 3.2.2 YOLOv5 在 AI-TOD 上 4. 参考 摘要 随着检测器的快速发展&#xff0c;边界框回归&#xff08;BBR&#xff09;损失函数不断进…

【赠书第3期】用ChatGPT轻松玩转机器学习与深度学习

文章目录 前言 1 机器学习 2 深度学习 3 使用ChatGPT进行机器学习和深度学习 4 推荐图书 5 粉丝福利 前言 机器学习和深度学习是当前最热门的技术领域之一&#xff0c;这些技术正在不断地改变我们的生活和工作方式。ChatGPT 是一款基于大规模预训练模型的自然语言处理工…

C4D vs Blender:哪个更适合你的需求?

对于初学者来说&#xff0c;选择合适的 3D 制作软件往往是一件很困扰的事情。近年来&#xff0c;C4D 和 Blender 成为了许多动画和 3D 建模爱好者的热门选择。那么&#xff0c;这两款软件各有什么特色呢&#xff1f;让我们一起来看看吧&#xff01; 一、软件特色 C4D 是一款商…

GEE ——errors & debuggings (2023GEE峰会总结)

简介&#xff1a; 在gee中有三种错误&#xff0c;一种就是系统错误&#xff0c;也就是我们看到的会在JavaScript code editor中出现的错误&#xff0c;也就是在程序还没有启动之前就会提示的错误&#xff0c;而客户端错误则主要是会提示一些在代码过程中的错误&#xff0c;比如…

Java语言基础(上)

Java 语言的特点 面对对象&#xff1a;Java 中所有的数据和方法都封装在对象中跨平台性&#xff1a;Java 通过 Java 虚拟机&#xff0c;可以在不同的操作系统上运行相同的程序自动内存管理&#xff1a;Java 提供垃圾回收机制&#xff0c;不需要手动管理内存强类型语言&#xf…