mysql转pg 任务调度quartz报错

本文详细阐述了项目从MySQL迁移到PostgreSQL后,遇到关于'long'类型错误的解决方案。通过配置quartz.properties文件,指定jobStore的Delegate类,解决编译问题并调整POM配置,最终确保Quartz正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql转pg之后项目报错,报错信息如下:

Couldn't retrieve job: 不良的类型值 long :
org.quartz.JobPersistenceException: Couldn't retrieve job: 不良的类型值 long :

解决办法:
在配置文件quartz.properties配置org.quartz.jobStore.driverDelegateClass

org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate

以下是我处理完整过程:
1、由于项目封装,我们需要新建quartz.properties文件然后覆盖原有文件
将原有文件复制,并配置

org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate

2、重新打包并重启
然后启动项目发现并没有生效,最后找到原因,添加的代码编译之后没有生效,所以若添加没有生效,一定看编译后是否有这段信息,最后才发现,项目封装,若覆盖则需要在pom放开(看每个人项目不同,只要生效即可),
在这里插入图片描述
放开之后重新编译
在这里插入图片描述
编译生效,重启项目,不在报错,完成!!!

### 将若依框架从MySQL迁移到PostgreSQL #### 创建目标数据库 为了将若依框架的数据从MySQL迁移到PostgreSQL,首先需要在PostgreSQL上创建一个新的数据库实例。这可以通过命令行工具`psql`或者图形界面管理工具如pgAdmin来完成。 ```sql CREATE DATABASE ruo_yi; ``` 此操作会建立名为`ruo_yi`的新数据库用于存储来自若依框架的应用程序数据[^1]。 #### 修改依赖库版本 对于Java项目来说,在构建文件中更新数据库连接所需的JDBC驱动是非常重要的一步。具体而言,应当移除原有的MySQL JDBC驱动并加入适用于PostgreSQL的对应项: ```xml <dependencies> <!-- 移除旧版 MySQL 驱动 --> <!-- 添加 PostgreSQL 的最新稳定版驱动 --> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.2</version> </dependency> </dependencies> ``` 上述XML片段展示了如何调整Maven项目的pom.xml文件中的依赖关系以适应新的数据库环境[^2]。 #### 更新应用程序配置属性 接下来要做的就是修改应用内部关于数据库访问的相关设置。特别是针对Quartz调度器部分,需指定其使用PostgreSQL特定实现类作为持久化层代理: ```java prop.put("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate"); ``` 这段代码指定了当涉及到定时任务处理时所采用的具体数据库交互逻辑应基于PostgreSQL而非其他类型的RDBMS系统[^3]。 #### 导出与导入数据 一旦完成了以上准备工作,则可以考虑实际执行数据移过程了。通常情况下,先利用mysqldump等工具导出原始表结构及记录内容成SQL脚本形式;之后再借助诸如pgloader这样的专用软件辅助解析源码并将之适配为目标平台可识别格式最后加载进去即可。 #### 数据一致性校验 迁移完成后务必进行全面测试确保所有功能正常运作并且没有任何丢失或损坏的信息存在。可通过编写自动化单元测试覆盖尽可能多场景从而提高信心度。 ```python import psycopg2 def check_data_consistency(): conn = None try: conn = psycopg2.connect( dbname="ruo_yi", user="your_username", password="your_password", host="localhost" ) cursor = conn.cursor() # 执行查询语句... cursor.execute("SELECT COUNT(*) FROM some_table;") result = cursor.fetchone()[0] print(f"Total records in 'some_table': {result}") except Exception as e: print(e) finally: if conn is not None: conn.close() check_data_consistency() ``` 该Python函数提供了一个简单的例子说明怎样连接新设立好的PostgreSQL服务器并对其中某张表格的数量做初步统计以便快速确认基本连通性和读取权限无误。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心系代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值