Quartz,设置 postgres 架构,JOB_DATA 应该是什么?

Quartz, setting up postgres schema, what should JOB_DATA be?

我正在使用 liquibase 根据 Bert R recipe 为石英设置数据库 tables。

postgres JOB_DATA 列的正确类型是什么?

原始错误是

Caused by: org.quartz.JobPersistenceException: Couldn't retrieve trigger: 2
at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1538)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
at org.postgresql.util.PGbytea.toBytes(PGbytea.java:76)

基本错误是 PostgreSQlDelegate.java 试图从 qrtz_triggers table 中读取 JOB_DATA 列。此专栏中确实只有 \x。

我已经更改了上面的 liquibase 文件,将类型从 BLOB 更改为 BYTEA,因为我遇到了错误

column "job_data" is of type oid but expression is of type bytea

quartz 属性文件包含作业存储的以下设置

# Job Store
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = 
org.quartz.impl.jdbcjobstore.PostgreSQLDelegate

列的数据类型应为 bytea。简单确认方法

  1. 前往 http://www.quartz-scheduler.org/downloads/
  2. 下载您的 quartz 版本并解压缩
  3. 转到 docs/dbTables 并寻找 tables_postgres.sql

在那里你会发现 job_data 的数据类型为 bytea

现在是您在将数据类型修改为 bytea 后面临的第二个问题,看看这个 link 是否解决了问题?

对于像我一样努力寻找石英数据库创建模式的人,您还可以在 main/resources/org/quartz/impl/jdbcjobstore/ 下的 github repo 中找到。