# Quartz 2.5.2 数据库脚本 `easy-agents-scheduler-quartz` 不会自动创建、删除或修改数据库结构。引用方需要选择与数据库匹配的脚本,并将其内容纳入自己的 Flyway、Liquibase 或初始化流程。 ## 脚本与 Delegate | 数据库 | 类路径资源 | `driverDelegateClass` | |---|---|---| | MySQL / MariaDB | `quartz-schema/mysql-2.5.2.sql` | `org.quartz.impl.jdbcjobstore.StdJDBCDelegate` | | PostgreSQL | `quartz-schema/postgresql-2.5.2.sql` | `org.quartz.impl.jdbcjobstore.PostgreSQLDelegate` | | H2 2.x(开发与测试) | `quartz-schema/h2-2.5.2.sql` | `org.quartz.impl.jdbcjobstore.StdJDBCDelegate` | 默认表前缀是 `QRTZ_`。若调用方调整表名或 Schema,需要同步设置 `tablePrefix`,例如 `scheduler.QRTZ_`。 ## 来源与变更 脚本来自 Quartz 官方仓库 `v2.5.2` 标签: - [MySQL InnoDB 原始脚本](https://github.com/quartz-scheduler/quartz/blob/v2.5.2/quartz/src/main/resources/org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql) - [PostgreSQL 原始脚本](https://github.com/quartz-scheduler/quartz/blob/v2.5.2/quartz/src/main/resources/org/quartz/impl/jdbcjobstore/tables_postgres.sql) - [H2 原始脚本](https://github.com/quartz-scheduler/quartz/blob/v2.5.2/quartz/src/main/resources/org/quartz/impl/jdbcjobstore/tables_h2.sql) 为避免初始化脚本误删调用方已有任务,本模块从 MySQL 和 PostgreSQL 脚本中移除了全部 `DROP TABLE`。H2 版本另将旧式 `IMAGE` 类型替换为 H2 2.x 支持的 `BLOB`,并移除了已经失效的 `MVCC=TRUE` 提示。三套脚本同时移除了显式事务提交和行尾空白,使事务边界由调用方的迁移工具管理,其余建表结构沿用官方脚本。 ## SHA-256 | 文件 | 官方原始文件 | 本模块资源 | |---|---|---| | MySQL | `90453cda26f4aad8abd35195a38ec36306561f0265f766dd12fbb42e185d5f82` | `1bfadd7762251836d6e15360e85f3c996a5c942a997ff0e9df30b59c50b0e97d` | | PostgreSQL | `60d22e05e00203702f18f835916c75270aeb6828e7051bb81dd87ebd7bf6a943` | `911d058d415dbb9b29b344997c952e29d2e0b510ce4fe0b69f38adc5d5afffdb` | | H2 | `21d806abef330e7c7175491b55b730acffa3c2e17a910840b32eee3fe2bf9fed` | `7750ac7b6c29d91072a5f8f98e4489d79469120effa9f613a7d9f89613beba5b` | 脚本随 Quartz 版本固化。后续升级 Quartz 时应新增版本化资源并完成数据库升级验证,不回改已经发布的脚本。 ## 引用方接入要求 1. 在目标数据库中执行所选脚本,或复制到引用方自己的迁移文件中。 2. 保持同一集群节点的 `schedulerName`、`tablePrefix` 和数据库一致。 3. 每个节点使用唯一 `instanceId`,常规部署可配置为 `AUTO`。 4. 生产集群启用 `clustered=true`,业务 Handler 按至少一次执行语义实现幂等。 5. 保留启动结构校验;表或关键列缺失时底座会拒绝启动并报告 `SCHEMA_INVALID`。 本模块只包含 Quartz 的 `QRTZ_*` 技术表。任务定义、执行流水、审计和管理界面等业务表由引用方按自身需求设计。