如何使用 Spring Boot 和 Flyway 设置 Quartz 调度程序的数据库架构?

Rei*_*der 3 spring quartz-scheduler database-schema flyway spring-boot

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

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

Caused by: org.postgresql.util.PSQLException: ERROR: relation "qrtz_locks" does not exist
  Position: 15
Run Code Online (Sandbox Code Playgroud)

尽管 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
Run Code Online (Sandbox Code Playgroud)

石英的性质是

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
Run Code Online (Sandbox Code Playgroud)

石英似乎没有获得模式名称。我该如何设置?

use*_*019 8

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

org.quartz.jobStore.tablePrefix=app_test_hub_scheduler_v0.qrtz_
Run Code Online (Sandbox Code Playgroud)

这里

app_test_hub_scheduler_v0 = is schema name and
qrtz_= is quartz table prefix
Run Code Online (Sandbox Code Playgroud)