-- -- Migrating from quartz 1.8 to 2.x -- Nuxeo upgrade to 7.3/7.10 (NXP-18904) -- Taken from http://quartz-scheduler.org/documentation/quartz-2.x/migration-guide -- -- drop tables that are no longer used -- drop table qrtz_job_listeners; drop table qrtz_trigger_listeners; -- -- drop columns that are no longer used -- alter table qrtz_job_details drop column is_volatile; alter table qrtz_triggers drop column is_volatile; alter table qrtz_fired_triggers drop column is_volatile; -- -- add new columns that replace the 'is_stateful' column -- alter table qrtz_job_details add column is_nonconcurrent bool; alter table qrtz_job_details add column is_update_data bool; update qrtz_job_details set is_nonconcurrent = is_stateful; update qrtz_job_details set is_update_data = is_stateful; alter table qrtz_job_details drop column is_stateful; alter table qrtz_fired_triggers add column is_nonconcurrent bool; alter table qrtz_fired_triggers add column is_update_data bool; update qrtz_fired_triggers set is_nonconcurrent = is_stateful; update qrtz_fired_triggers set is_update_data = is_stateful; alter table qrtz_fired_triggers drop column is_stateful; -- -- add new 'sched_name' column to all tables -- alter table qrtz_blob_triggers add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; alter table qrtz_calendars add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; alter table qrtz_cron_triggers add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; alter table qrtz_fired_triggers add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; alter table qrtz_job_details add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; alter table qrtz_locks add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; alter table qrtz_paused_trigger_grps add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; alter table qrtz_scheduler_state add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; alter table qrtz_simple_triggers add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; alter table qrtz_triggers add column sched_name varchar(120) not null DEFAULT 'TestScheduler'; -- -- drop all primary and foreign key constraints, so that we can define new ones -- alter table qrtz_triggers drop constraint qrtz_triggers_job_name_fkey; alter table qrtz_blob_triggers drop constraint qrtz_blob_triggers_pkey; alter table qrtz_blob_triggers drop constraint qrtz_blob_triggers_trigger_name_fkey; alter table qrtz_simple_triggers drop constraint qrtz_simple_triggers_pkey; alter table qrtz_simple_triggers drop constraint qrtz_simple_triggers_trigger_name_fkey; alter table qrtz_cron_triggers drop constraint qrtz_cron_triggers_pkey; alter table qrtz_cron_triggers drop constraint qrtz_cron_triggers_trigger_name_fkey; alter table qrtz_job_details drop constraint qrtz_job_details_pkey; alter table qrtz_job_details add primary key (sched_name, job_name, job_group); alter table qrtz_triggers drop constraint qrtz_triggers_pkey; -- -- add all primary and foreign key constraints, based on new columns -- alter table qrtz_triggers add primary key (sched_name, trigger_name, trigger_group); alter table qrtz_triggers add foreign key (sched_name, job_name, job_group) references qrtz_job_details(sched_name, job_name, job_group); alter table qrtz_blob_triggers add primary key (sched_name, trigger_name, trigger_group); alter table qrtz_blob_triggers add foreign key (sched_name, trigger_name, trigger_group) references qrtz_triggers(sched_name, trigger_name, trigger_group); alter table qrtz_cron_triggers add primary key (sched_name, trigger_name, trigger_group); alter table qrtz_cron_triggers add foreign key (sched_name, trigger_name, trigger_group) references qrtz_triggers(sched_name, trigger_name, trigger_group); alter table qrtz_simple_triggers add primary key (sched_name, trigger_name, trigger_group); alter table qrtz_simple_triggers add foreign key (sched_name, trigger_name, trigger_group) references qrtz_triggers(sched_name, trigger_name, trigger_group); alter table qrtz_fired_triggers drop constraint qrtz_fired_triggers_pkey; alter table qrtz_fired_triggers add primary key (sched_name, entry_id); alter table qrtz_calendars drop constraint qrtz_calendars_pkey; alter table qrtz_calendars add primary key (sched_name, calendar_name); alter table qrtz_locks drop constraint qrtz_locks_pkey; alter table qrtz_locks add primary key (sched_name, lock_name); alter table qrtz_paused_trigger_grps drop constraint qrtz_paused_trigger_grps_pkey; alter table qrtz_paused_trigger_grps add primary key (sched_name, trigger_group); alter table qrtz_scheduler_state drop constraint qrtz_scheduler_state_pkey; alter table qrtz_scheduler_state add primary key (sched_name, instance_name); -- -- add new simprop_triggers table -- CREATE TABLE qrtz_simprop_triggers ( SCHED_NAME VARCHAR(120) NOT NULL, TRIGGER_NAME VARCHAR(200) NOT NULL, TRIGGER_GROUP VARCHAR(200) NOT NULL, STR_PROP_1 VARCHAR(512) NULL, STR_PROP_2 VARCHAR(512) NULL, STR_PROP_3 VARCHAR(512) NULL, INT_PROP_1 INT NULL, INT_PROP_2 INT NULL, LONG_PROP_1 BIGINT NULL, LONG_PROP_2 BIGINT NULL, DEC_PROP_1 NUMERIC(13,4) NULL, DEC_PROP_2 NUMERIC(13,4) NULL, BOOL_PROP_1 BOOL NULL, BOOL_PROP_2 BOOL NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) ); -- -- create indexes for faster queries -- create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY); create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP); create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP); create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME); create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP); create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE); create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME); create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME); create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP); create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP); -- -- NXP-19725 2.2 upgrade -- alter table qrtz_fired_triggers add column sched_time bigint not null; -- Can be removed if present -- alter table qrtz_fired_triggers drop column is_update_data; -- alter table qrtz_scheduler_state drop column recoverer;