spring - 如何使用 Spring Boot 和 Flyway 为 Quartz 调度程序设置数据库模式?

标签 spring spring-boot quartz-scheduler database-schema flyway

我有一个 Spring Boot 应用程序,它使用 Quartz 调度程序和 PostGreSQL 数据库作为存储。我正在将它从使用它自己的数据库和 public 模式运行迁移到针对每个应用程序使用一个模式的共享数据库运行。架构由 管理.

在测试期间(使用 )应用程序启动失败

Caused by: org.postgresql.util.PSQLException: ERROR: relation "qrtz_locks" does not exist
  Position: 15

虽然 flyway 之前已经在架构 app_test_hub_scheduler_v0 中创建了该表。

配置是

spring:
  jpa.properties:
    hibernate.default_schema: app_test_hub_scheduler_v0
  flyway:
    enabled: true
    schemas: app_test_hub_scheduler_v0
  jpa:
    properties:
      hibernate:
        default_schema: app_test_hub_scheduler_v0
  quartz:
    jdbc:
      schema: app_test_hub_scheduler_v0
jdbcUrlParams: ?currentSchema=app_test_hub_scheduler_v0

quartz 的特性是

org.quartz.scheduler.instanceName=test-hub-scheduler
org.quartz.scheduler.instanceId=AUTO
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=50
org.quartz.jobStore.misfireThreshold=60000
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.jobStore.useProperties=true
org.quartz.jobStore.dataSource=myDS
org.quartz.jobStore.tablePrefix=qrtz_
org.quartz.jobStore.isClustered=false

似乎 quartz 没有得到模式名称。如何设置?

最佳答案

如果在 quartz.properties 中声明了以下属性,Quartz 调度程序可以考虑 schema_name。例如

org.quartz.jobStore.tablePrefix=app_test_hub_scheduler_v0.qrtz_

这里

app_test_hub_scheduler_v0 = is schema name and
qrtz_= is quartz table prefix

关于spring - 如何使用 Spring Boot 和 Flyway 为 Quartz 调度程序设置数据库模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64045340/

相关文章:

Golang Robfig cron AddFunc 不会动态运行作业

java - 初始化 bean 的最佳方法是什么?

java - Hibernate 模板翻译

java - 如何更改 ResponseStatusException 的 ErrorAttributes?

java - 如何使用 Spring Boot 指定 BeanNamingStrategy?

spring - 如何让JobDetailBean非并发运行?

Spring 安全和远程处理

java - 自定义 validator 消息 : Throwing exception in implementation of ConstraintValidator cause UnexpectedException

java - 使用递归父子查询特征而不是Java特征

java - Cron 表达式在给定时间(小时和分钟)执行 cron 触发器