首页 > 其他分享 >Ruoyi集成flyway后启动报错

Ruoyi集成flyway后启动报错

时间:2023-08-19 17:07:25浏览次数:36  
标签:baseline Ruoyi flyway ruoyi 报错 org import 迁移

ruoyi系列框架是开源中非常好的源码平台,使用宽松的开源协议进行源代码的开放。不管是单体版、前后端分离甚至是微服务架构,均提供了相应的代码。基于ruoyi可以做自己的后台系统,也可以学习很多技术的集成。

而flyway是java里面的数据库脚本自动管理工具,使用flyway可以在应用程序升级时自动管理sql脚本,从而避免用户忘记而带来的没有执行脚本引起的问题。是多版本开发中非常好用的sql版本管理组件。

官方的ruoyi框架并没有集成flyway,在开源生态中是有一些爱好者自己基于ruoyi来进行集成。本文将简单分享基于ruoyi单体版(其它版本类同)如何集成flyway,在集成的过程中会遇到什么问题,同时分享三种解决方案。

flyway在ruoyi框架中的集成

1、在ruoyi的pom.xml中定义flyway依赖,具体代码如下所示:

<!-- 数据库版本控制核心依赖 -->
<dependency>
	<groupId>org.flywaydb</groupId>
	<artifactId>flyway-core</artifactId>
</dependency>

<!-- 数据库版本控制插件 -->
<plugin>
	<groupId>org.flywaydb</groupId>
	<artifactId>flyway-maven-plugin</artifactId>
</plugin>

2、系统配置文件application.yml定义flyway相关配置

flyway:
    # 字符编码
    encoding: utf-8
    # 对执行迁移时基准版本的描述
    baseline-description: BaseLineInitialize
    # 若连接的数据库非空库,是否初始化
    # 当迁移时发现目标schema非空,而且带有没有元数据的表时,是否自动执行基准迁移,默认false.
    baseline-on-migrate: true
    # 指定 baseline 的版本号,缺省值为 1, 低于该版本号的 SQL 文件, migrate 的时候被忽略
    # 开始执行基准迁移时对现有的schema的版本打标签,默认值为1.
    baseline-version: 1.0.0
    # 是否开启校验
    # 迁移时是否校验,默认为 true
    validate-on-migrate: true
    # 开发环境最好开启 outOfOrder, 生产环境关闭 outOfOrder
    # 是否允许无序的迁移,默认 false
    out-of-order: true
    # 当读取元数据表时是否忽略错误的迁移,默认false
    ignore-future-migrations: false
    # 当初始化好连接时要执行的SQL
    init-sql: SELECT * FROM pg_tables WHERE tablename NOT LIKE'pg%' AND tablename NOT LIKE'sql_%' ORDER BY tablename;

3、定义flyway配置bean

package com.hngtghy.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("${flyway.encoding}")
  private String encoding;
  
  // 对执行迁移时基准版本的描述
  @Value("${flyway.baseline-description}")
  private String baselineDescription;
 
  // 是否自动执行基准迁移
  @Value("${flyway.baseline-on-migrate}")
  private boolean baselineOnMigrate;

标签:baseline,Ruoyi,flyway,ruoyi,报错,org,import,迁移
From: https://blog.51cto.com/u_16039070/7150478

相关文章

  • 【wxauto】新版PC端微信报错:LookupError: Find Control Timeout(10s): {Name: ‘输入
    微信版本:3.9.5.81调用后报错“LookupError:FindControlTimeout(10s):{Name:'输入',ControlType:EditControl}”按照Issues#107说的修改后是不报错,但是没有效果,不能自动发送消息 解决方案:在wxauto.py的文件中找到WeChat的类,并添加下述方法defChangeWindo......
  • k8s推送代码至gitlab报错error: RPC failed; result=22, HTTP code = 413 fatal: The
    #gitpush-uoriginmainUsernamefor'http://gitlab.wjl.net':rootPasswordfor'http://[email protected]':Countingobjects:1032,done.Deltacompressionusingupto8threads.Compressingobjects:100%(871/871),done.error:R......
  • 启动mysql时报错"/etc/init.d/mysqld: Permission denied"
    问题描述:启动mysql时报错"/etc/init.d/mysqld:Permissiondenied",如下所示:数据库:mysql5.5.18系统:rhel6.51、异常重现[root@MySQL5518-Master~]#servicemysqldstartenv:/etc/init.d/mysqld:Permissiondenied2、解决步骤[root@MySQL5518-Master~]#ll/etc/init.d......
  • torch tensor,boxes[:][:2] -= boxes[:][:2]/2 报错
    因为在PyTorch中进行切片操作时,不支持使用[:][:2]的方式进行多次切片。正确的方式是将两次切片操作合并成一次。在你的代码中,你可能想要对所有的boxes进行操作,对每个box的前两个元素进行减法操作。以下是正确的代码示例:importtorch#假设boxes是一个包含多个box......
  • vue3 vite后台管理模板项目打包报错 Some chunks are larger than 500 KiB after mini
    ​ 1、错误原因分析:超过块大小限制,块大小默认500KB2、解决办法:在vite.config.js中增加output配置项build:{chunkSizeWarningLimit:1500,//调整包的大小rollupOptions:{output:{//最小化拆分包manualChunks(id){......
  • 记录Python调用企业微信报错"errcode":44004,"errmsg":"Warning: wrong json format.
    1.通过单独的文件调用接口发送消息无异常;2.通过嵌套调用接口报错:"errcode":44004,"errmsg":"Warning:wrongjsonformat.;3.检查json文本格式无异常;4.怀疑json文本赋值有问题,增加trycache捕获,没有报错,但是可以正常调用接口!!5.打印json文本,比对trycatch的区别,发现多了个空格,依葫......
  • iwebsec-sql注入 05 报错型注入
    01、题目分析:三大盲注中的报错型注入,02、sqlmap工具注入:一把梭python.\sqlmap.py-u"http://www.bdrwmy.cn:8001/sqli/05.php?id=1"--current-db--dump--batch03、手工注入:盲注,简单的来讲就是无论你输入什么内容,页面都不会出现错误提示,如果查询结果正确就显示类似......
  • npm加参数--host启动报错 Could not auto-determine entry point from rollupOptions
    参考:https://blog.csdn.net/qq_41664096/article/details/118961381使用以下命令启动npm只能本机访问npmrundev如果需要网络访问则需要加参数--hostnpmrundev--host0.0.0.0会报错(!)Couldnotauto-determineentrypointfromrollupOptionsorhtmlfilesandt......
  • burpsuite靶场----SQL注入13----oracle的CAST报错注入
    burpsuite靶场----SQL注入13----oracle的CAST报错注入靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-sql-injection-visible-error-based正式开始1.通过在TrackingId=JBhlRizkqfo87Hq8后面添加'和''(两个单引号)猜测是oracle数据库添加'报错,添加''......
  • 读取xls文件时报错 Initialisation of record 0x203(NumberRecord) left 4 bytes rema
    项目背景:公司的一个客户报告项目需要同步及抽取客户方的文件数据,文件类型为xls格式,文件为客户方的第三方厂商系统批量生成,工具及方法不明问题:读取该类xls文件后,无法成功创建Workbook,报错提示“Initialisationofrecord0x203(NumberRecord)left4bytesremainingstilltob......