Flyway 报错:Detected applied migration not resolved locally:2和执行脚本错误
目录
一.前言
1.Flyway简介
2.flyway依赖包
3.使用flyway的好处
二.问题分析
1.Flyway 报错:Detected applied migration not resolved locally:2
1.1问题分析:
1.2解决方法
2.执行脚本错误
2.1问题分析
2.2问题解决
三. 总结
一.前言
在实际开发中使用到Flyway ,对于flyway我们做一下简单介绍
1.Flyway简介
Flyway 是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本。
在项目或产品中,很难一开始就把业务理清楚,把数据库表设计好,因此数据表也会在迭代周期不断迭代。在Java应用程序中使用Flyway,能快速有效地用于迭代数据库表结构,并保证部署到测试环境或生产环境时,数据表都是保持一致的。
具体介绍请看Flyway官方文档
https://flywaydb.org/documentation/
2.flyway依赖包
<dependency><groupId>org.flywaydb</groupId><artifactId>flyway-core</artifactId><version>7.9.2</version>
</dependency>
3.使用flyway的好处
在多人开发的项目中,我们都习惯了使用SVN或者Git来对代码做版本控制,主要的目的就是为了解决多人开发代码冲突和版本回退的问题。
其实,数据库的变更也需要版本控制,在日常开发中,我们经常会遇到下面的问题:
自己写的SQL忘了在所有环境执行。
别人写的SQL我们不能确定是否都在所有环境执行过了。
有人修改了已经执行过的SQL,期望再次执行。
需要新增环境做数据迁移。
每次发版需要手动控制先发DB版本,再发布应用版本。
其它场景。
有了flyway,这些问题都能得到很好的解决。
二.问题分析
1.Flyway 报错:Detected applied migration not resolved locally:2
在使用Flyway作系统管理的时候我的程序报的此类错误
1.1问题分析:
报错内容:检测到应用迁移未在本地解决
在网上找了这个问题的原因是:
1.由于导入数据库包含flyway_schema_history表,所以本地运行时出现版本不一致报错,
2.迁移了一个版本为2的sql,然后我把它删了,它再第二次运行的时候,找不到我之前迁移过的V2__orange_cms这个文件。
1.2解决方法
特别注意:一定是在测试环境和本地环境
1.mvn flyway:clean,这一步会清空现有数据。
2.确保配置文件中,开启flyway。
3.启动项目,完成flyway_schema_history表初始化,启动完成后备份flyway_schema_history表
4.导入数据,此时flyway_schema_history表会被更新为导入数据的版本
5.导入成功后,删除flyway_schema_history表,将备份的flyway_schema_history表替换
6.再次启动应用,Success!
2.执行脚本错误
2.1问题分析
报错信息大致意思:在我项目配置文件开启Flyway时,会爆:执行sql异常,找不到"xxx"表.
这个可是困扰我很久的一个问题, 看我的程序和配置都没有错,就是不知道错在哪里.
错误原因:由于我们的flyway是基于数据库mysql5.7的版本但是我的本机数据库版本是mysql5.5的所以开启Flyway配置进行数据库初始化总是报错"找不到xxx表"
2.2问题解决
升级我们的数据库版本,大于等于我们的开发数据库版本,由于升级数据库的道路有点曲折建议大家借鉴:比较详细
https://blog.csdn.net/m0_49284219/article/details/121972531
数据库升级完成后开启我们的Flyway配置
启动程序来看看我们的项目来测试一下能否启动成功
三. 总结
1.强调:对于我们的Flyway要根据我们的实际情况进行我们的库表删除,不要忙目删除我们的flyway_schema_history表
2.flyway是对数据库版本管理比较优秀的一个工具,对数据库表的版本控制比较强.
3.对于上述有和我一样问题的同学希望能帮到大家,对于解决此类问题欢迎大家留言讨论,也希望大家对于Flyway其他问题也可以进行讨论
Flyway 报错:Detected applied migration not resolved locally:2和执行脚本错误相关推荐
- SpringBoot FlyWay报错:Detected applied migration not resolved locally:
项目是SpringBoot,使用FlyWay做数据库版本控制. 需要连接本地数据库,在新建本地数据库,导入数据后,启动工程,发现如下报错: 这是因为导入数据库包含flyway_schema_histo ...
- flywa报错Detected resolved migration not applied to database: 20221103.10000
详情错误日志 . ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ ...
- 部署项目报错 清一色的cannot be resolved to a type
今天下载一个项目包部署到tomcat时,错误框里清一色的cannot be resolved to a type: 记得之前遇到这种问题的时候一般是build path中jar包的问题,或者是jdk版 ...
- VS CODE Python 包路径报错解决方案could not be resolved
问题:程序可以正常运行,但是提示错误,找不到包的路径. 解决办法: 1.点击左下脚进入设置,搜索栏输入:python.Analysis:Extra Paths 2.这时默认选择的是[用户],要选择[远 ...
- 支付宝运行报错页面找不到resolved to pages/login/login not found
复现bug 初把uniapp项目运行在支付宝开发者工具时,我的login页面一直在pages/index/login下且在其他开发者工具上面运行正常,但是在支付宝开发者工具上面一直报错. 报错截图 目 ...
- eclipse使用@WebServlet报错:WebServlet cannot be resolved to a type
出现此报错的原因是因为没有配置好服务器.首先检查创建项目时是否加载了服务器. 如图,我这里没有加载服务器,创建的动态网络工程也就无法导入相关的包,从而使用@WebServlet. 解决方法: 配置服务 ...
- sonar 报错日志分析(根据日志跟踪源码执行)
sonar 分析之后,scanner 上传分析文件报错: [ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-mave ...
- python打包exe报错编码问题_python打包成exe,但执行exe报错,求解。
1.pycharm pycharm-professional-2018.1.4.exe 已安装 64位的. 2.python python-3.7.0.exe 已安装32 ...
- Flyway报错源码分析——Validate failed: Migrations have failed validation
一.异常信息 今天早上启动项目,突然出现了如下异常,百度了一下没有合适的解决方案,决定从源码入手,看看能不能解决. org.springframework.beans.factory.BeanCrea ...
最新文章
- 如何解决Ubuntu 12.04(64位)系统在virtualbox环境下无法开机自动挂载共享目录的问题
- centos 6.9 NTP基准时间服务器配置
- Nginx报错:nginx: [emerg] CreateFile() nginx.conf“ failed (3: The system cannot find the path specified
- [错误记录] --- rocketmq批量消费设置参数的问题
- 漫步凸分析八——回收锥与无界
- 如何用c语言编写工程文件夹,利用makefile实现c语言项目编译
- java程序设计 第三版_清华大学出版社-图书详情-《Java语言程序设计(第3版)》...
- 用什么工具可以制作gif?分享一款在线制作gif动画工具
- MUSIC算法---空间谱估计
- whale 帷幄:数字化营销运营 全渠道数字化精益营销管理平台
- 从网上自学老男孩python全栈的笔记-经历
- ua解析接口_在线免费解析抖音短视频(维护中)
- 乐高机器人骨奥_乐高机器人这个大坑,为啥大家都拽着孩子往里跳?
- 电脑win7系统开机密码忘记
- 电子书 UNIX环境高级编程(第3版).pdf
- 查找算法之斐波那契查找算法
- 根据UI设计图得到android所需要的dp
- 网络密码破解的十个方法
- 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。
- 2021年杭州值得去的46家规模互联网大厂公司全名简称