如何解决如何使用Spring Boot和Flyway为Quartz调度程序设置数据库架构?
我有一个Spring Boot应用程序,该应用程序使用Quartz调度程序和PostGreSQL数据库作为存储。我正在将其从使用public
模式与自己的数据库一起运行迁移到针对每个应用程序具有一个模式的共享数据库运行。该模式由flyway管理。
在测试期间(使用testcontainers),应用程序启动失败,并显示
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
石英的性质是
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.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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。