diff --git a/common/taskana-common/src/main/resources/sql/db2/taskana-schema-db2.sql b/common/taskana-common/src/main/resources/sql/db2/taskana-schema-db2.sql index cba2921fe..ab964122d 100644 --- a/common/taskana-common/src/main/resources/sql/db2/taskana-schema-db2.sql +++ b/common/taskana-common/src/main/resources/sql/db2/taskana-schema-db2.sql @@ -7,7 +7,7 @@ CREATE TABLE TASKANA_SCHEMA_VERSION( PRIMARY KEY (ID) ); -- The VERSION value must match the value of TaskanaEngineConfiguration.TASKANA_SCHEMA_VERSION -INSERT INTO TASKANA_SCHEMA_VERSION (VERSION, CREATED) VALUES ('4.11.0', CURRENT_TIMESTAMP); +INSERT INTO TASKANA_SCHEMA_VERSION (VERSION, CREATED) VALUES ('5.0.0', CURRENT_TIMESTAMP); CREATE TABLE CLASSIFICATION( ID VARCHAR(40) NOT NULL, @@ -338,97 +338,77 @@ CREATE SEQUENCE SCHEDULED_JOB_SEQ -- This list is provided on a as-is basis. It is used for tuning of the internal performance tests. -- The script needs to be reviewed and adapted for each indiviual TASKANA setup. -- =========================== --- index[1], 0,013MB - CREATE UNIQUE INDEX "DB2ADMIN"."IDX1805212017540" - ON "TASKANA "."CLASSIFICATION" ("ID" ASC) INCLUDE - ("CUSTOM_8", "CUSTOM_7", "CUSTOM_6", "CUSTOM_5", "CUSTOM_4", - "CUSTOM_3", "CUSTOM_2", "CUSTOM_1", "APPLICATION_ENTRY_POINT", - "SERVICE_LEVEL", "PRIORITY", "DESCRIPTION", "NAME", - "CREATED", "VALID_IN_DOMAIN", "DOMAIN", "TYPE", "CATEGORY", - "PARENT_KEY", "PARENT_ID", "KEY") ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[2], 3,646MB - CREATE INDEX "DB2ADMIN"."IDX1805212018000" ON "TASKANA "."TASK" - ("WORKBASKET_KEY" ASC, "DOMAIN" DESC) ALLOW REVERSE - SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[3], 0,056MB - CREATE INDEX "DB2ADMIN"."IDX1805212018030" ON "TASKANA "."CLASSIFICATION" - ("CATEGORY" ASC, "DOMAIN" ASC, "TYPE" ASC, "CUSTOM_1" - ASC, "CUSTOM_8" ASC, "CUSTOM_7" ASC, "CUSTOM_6" ASC, - "CUSTOM_5" ASC, "CUSTOM_4" ASC, "CUSTOM_3" ASC, "CUSTOM_2" - ASC, "APPLICATION_ENTRY_POINT" ASC, "SERVICE_LEVEL" - ASC, "PRIORITY" ASC, "DESCRIPTION" ASC, "NAME" ASC, - "CREATED" ASC, "VALID_IN_DOMAIN" ASC, "PARENT_KEY" ASC, "PARENT_ID" - ASC, "KEY" ASC, "ID" ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[4], 0,126MB - CREATE INDEX "DB2ADMIN"."IDX1805212020000" ON "TASKANA "."WORKBASKET_ACCESS_LIST" - ("ACCESS_ID" ASC, "WORKBASKET_ID" ASC, "PERM_READ" - ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[5], 3,356MB - CREATE INDEX "DB2ADMIN"."IDX1805212021410" ON "TASKANA "."TASK" - ("POR_VALUE" ASC, "WORKBASKET_ID" ASC) ALLOW REVERSE - SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[6], 15,224MB - CREATE INDEX "DB2ADMIN"."IDX1805212021430" ON "TASKANA "."ATTACHMENT" - ("TASK_ID" ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[7], 2,353MB - CREATE INDEX "DB2ADMIN"."IDX1805212024540" ON "TASKANA "."ATTACHMENT" - ("TASK_ID" ASC, "RECEIVED" ASC, "CLASSIFICATION_ID" - ASC, "CLASSIFICATION_KEY" ASC, "MODIFIED" ASC, "CREATED" - ASC, "ID" ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[8], 0,056MB - CREATE UNIQUE INDEX "DB2ADMIN"."IDX1805212025210" - ON "TASKANA "."CLASSIFICATION" ("KEY" ASC, "DOMAIN" - ASC) INCLUDE ("CUSTOM_8", "CUSTOM_7", "CUSTOM_6", - "CUSTOM_5", "CUSTOM_4", "CUSTOM_3", "CUSTOM_2", "CUSTOM_1", - "APPLICATION_ENTRY_POINT", "SERVICE_LEVEL", "PRIORITY", - "DESCRIPTION", "NAME", "CREATED", "VALID_IN_DOMAIN", - "TYPE", "CATEGORY", "PARENT_KEY", "PARENT_ID", "ID") ALLOW REVERSE - SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[9], 1,056MB - CREATE UNIQUE INDEX "DB2ADMIN"."IDX1805212028580" - ON "TASKANA "."WORKBASKET" ("ID" ASC) INCLUDE ("ORG_LEVEL_4", - "ORG_LEVEL_3", "ORG_LEVEL_2", "ORG_LEVEL_1", "OWNER", - "DESCRIPTION", "TYPE", "DOMAIN", "NAME", "KEY") ALLOW - REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[10], 1,274MB - CREATE UNIQUE INDEX "DB2ADMIN"."IDX1805212034070" - ON "TASKANA "."WORKBASKET" ("KEY" ASC, "DOMAIN" ASC) - INCLUDE ("ORG_LEVEL_4", "ORG_LEVEL_3", "ORG_LEVEL_2", - "ORG_LEVEL_1", "CUSTOM_4", "CUSTOM_3", "CUSTOM_2", - "CUSTOM_1", "OWNER", "DESCRIPTION", "TYPE", "NAME", - "MODIFIED", "CREATED", "ID") ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[11], 0,056MB - CREATE UNIQUE INDEX "DB2ADMIN"."IDX1805212039070" - ON "TASKANA "."CLASSIFICATION" ("ID" ASC) INCLUDE - ("CUSTOM_8", "CUSTOM_7", "CUSTOM_6", "CUSTOM_5", "CUSTOM_4", - "CUSTOM_3", "CUSTOM_2", "CUSTOM_1", "APPLICATION_ENTRY_POINT", - "SERVICE_LEVEL", "PRIORITY", "DESCRIPTION", "NAME", - "MODIFIED", "CREATED", "VALID_IN_DOMAIN", "DOMAIN", - "TYPE", "CATEGORY", "PARENT_KEY", "PARENT_ID", "KEY") ALLOW REVERSE - SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[12], 0,325MB - CREATE UNIQUE INDEX "DB2ADMIN"."IDX1805212040470" - ON "TASKANA "."WORKBASKET" ("KEY" ASC, "DOMAIN" ASC) - INCLUDE ("ID") ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; --- index[13], 0,126MB - CREATE INDEX "DB2ADMIN"."IDX1805212042430" ON "TASKANA "."WORKBASKET_ACCESS_LIST" - ("WORKBASKET_ID" ASC, "PERM_CUSTOM_12" ASC, "PERM_CUSTOM_11" - ASC, "PERM_CUSTOM_10" ASC, "PERM_CUSTOM_9" ASC, "PERM_CUSTOM_8" - ASC, "PERM_CUSTOM_7" ASC, "PERM_CUSTOM_6" ASC, "PERM_CUSTOM_5" - ASC, "PERM_CUSTOM_4" ASC, "PERM_CUSTOM_3" ASC, "PERM_CUSTOM_2" - ASC, "PERM_CUSTOM_1" ASC, "PERM_DISTRIBUTE" ASC, "PERM_TRANSFER" - ASC, "PERM_APPEND" ASC, "PERM_OPEN" ASC, "PERM_READ" - ASC, "ACCESS_ID" ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; - COMMIT WORK ; +CREATE UNIQUE INDEX IDX_CLASSIFICATION_ID ON CLASSIFICATION + ("ID" ASC) + INCLUDE ("CUSTOM_8", "CUSTOM_7", "CUSTOM_6", "CUSTOM_5", "CUSTOM_4", "CUSTOM_3", "CUSTOM_2", + "CUSTOM_1", "APPLICATION_ENTRY_POINT", "SERVICE_LEVEL", "PRIORITY", "DESCRIPTION", "NAME", + "CREATED", "VALID_IN_DOMAIN", "DOMAIN", "TYPE", "CATEGORY", "PARENT_KEY", "PARENT_ID", "KEY") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_CLASSIFICATION_CATEGORY ON CLASSIFICATION + ("CATEGORY" ASC, "DOMAIN" ASC, "TYPE" ASC, "CUSTOM_1" ASC, "CUSTOM_8" ASC, "CUSTOM_7" ASC, + "CUSTOM_6" ASC, "CUSTOM_5" ASC, "CUSTOM_4" ASC, "CUSTOM_3" ASC, "CUSTOM_2" ASC, + "APPLICATION_ENTRY_POINT" ASC, "SERVICE_LEVEL" ASC, "PRIORITY" ASC, "DESCRIPTION" ASC, + "NAME" ASC, "CREATED" ASC, "VALID_IN_DOMAIN" ASC, "PARENT_KEY" ASC, "PARENT_ID" ASC, "KEY" ASC, + "ID" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE UNIQUE INDEX IDX_CLASSIFICATION_KEY_DOMAIN ON CLASSIFICATION + ("KEY" ASC, "DOMAIN" ASC) + INCLUDE ("CUSTOM_8", "CUSTOM_7", "CUSTOM_6", "CUSTOM_5", "CUSTOM_4", "CUSTOM_3", "CUSTOM_2", + "CUSTOM_1", "APPLICATION_ENTRY_POINT", "SERVICE_LEVEL", "PRIORITY", "DESCRIPTION", "NAME", + "CREATED", "VALID_IN_DOMAIN", "TYPE", "CATEGORY", "PARENT_KEY", "PARENT_ID", "ID") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_TASK_WORKBASKET_KEY_DOMAIN ON TASK + ("WORKBASKET_KEY" ASC, "DOMAIN" DESC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_TASK_POR_VALUE ON TASK + (UPPER("POR_VALUE") ASC, "WORKBASKET_ID" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_ATTACHMENT_TASK_ID ON ATTACHMENT + ("TASK_ID" ASC, "RECEIVED" ASC, "CLASSIFICATION_ID" ASC, "CLASSIFICATION_KEY" ASC, + "MODIFIED" ASC, "CREATED" ASC, "ID" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE UNIQUE INDEX IDX_WORKBASKET_ID ON WORKBASKET + ("ID" ASC) + INCLUDE ("ORG_LEVEL_4", "ORG_LEVEL_3", "ORG_LEVEL_2", "ORG_LEVEL_1", "OWNER", "DESCRIPTION", + "TYPE", "DOMAIN", "NAME", "KEY") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE UNIQUE INDEX IDX_WORKBASKET_KEY_DOMAIN ON WORKBASKET + ("KEY" ASC, "DOMAIN" ASC) + INCLUDE ("ORG_LEVEL_4", "ORG_LEVEL_3", "ORG_LEVEL_2", "ORG_LEVEL_1", "CUSTOM_4", "CUSTOM_3", + "CUSTOM_2", "CUSTOM_1", "OWNER", "DESCRIPTION", "TYPE", "NAME", "MODIFIED", "CREATED", "ID") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE UNIQUE INDEX IDX_WORKBASKET_KEY_DOMAIN_ID ON WORKBASKET + ("KEY" ASC, "DOMAIN" ASC) + INCLUDE ("ID") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_ACCESS_ID ON WORKBASKET_ACCESS_LIST + ("ACCESS_ID" ASC, "WORKBASKET_ID" ASC, "PERM_READ" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_WORKBASKET_ID ON WORKBASKET_ACCESS_LIST + ("WORKBASKET_ID" ASC, "PERM_CUSTOM_12" ASC, "PERM_CUSTOM_11" ASC, "PERM_CUSTOM_10" ASC, + "PERM_CUSTOM_9" ASC, "PERM_CUSTOM_8" ASC, "PERM_CUSTOM_7" ASC, "PERM_CUSTOM_6" ASC, + "PERM_CUSTOM_5" ASC, "PERM_CUSTOM_4" ASC, "PERM_CUSTOM_3" ASC, "PERM_CUSTOM_2" ASC, + "PERM_CUSTOM_1" ASC, "PERM_DISTRIBUTE" ASC, "PERM_TRANSFER" ASC, "PERM_APPEND" ASC, + "PERM_OPEN" ASC, "PERM_READ" ASC, "ACCESS_ID" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; + COMMIT WORK ; diff --git a/common/taskana-common/src/main/resources/sql/db2/taskana_schema_update_4.11.0_to_5.0.0_db2.sql b/common/taskana-common/src/main/resources/sql/db2/taskana_schema_update_4.11.0_to_5.0.0_db2.sql new file mode 100644 index 000000000..911aa8de2 --- /dev/null +++ b/common/taskana-common/src/main/resources/sql/db2/taskana_schema_update_4.11.0_to_5.0.0_db2.sql @@ -0,0 +1,95 @@ +-- this script updates the TASKANA database schema from version 4.11.0 to version 5.0.0. +-- REORGS are only necessary for _some_ altering operations. See https://www.ibm.com/docs/en/db2/11.1?topic=statements-alter-table +SET SCHEMA %schemaName%; + +INSERT INTO TASKANA_SCHEMA_VERSION (VERSION, CREATED) VALUES ('5.0.0', CURRENT_TIMESTAMP); + +DROP INDEX "DB2ADMIN"."IDX1805212017540"; +DROP INDEX "DB2ADMIN"."IDX1805212018000"; +DROP INDEX "DB2ADMIN"."IDX1805212018030"; +DROP INDEX "DB2ADMIN"."IDX1805212020000"; +DROP INDEX "DB2ADMIN"."IDX1805212021410"; +DROP INDEX "DB2ADMIN"."IDX1805212021430"; +DROP INDEX "DB2ADMIN"."IDX1805212024540"; +DROP INDEX "DB2ADMIN"."IDX1805212025210"; +DROP INDEX "DB2ADMIN"."IDX1805212028580"; +DROP INDEX "DB2ADMIN"."IDX1805212034070"; +DROP INDEX "DB2ADMIN"."IDX1805212039070"; +DROP INDEX "DB2ADMIN"."IDX1805212040470"; +DROP INDEX "DB2ADMIN"."IDX1805212042430"; + + +CREATE UNIQUE INDEX IDX_CLASSIFICATION_ID ON CLASSIFICATION + ("ID" ASC) + INCLUDE ("CUSTOM_8", "CUSTOM_7", "CUSTOM_6", "CUSTOM_5", "CUSTOM_4", "CUSTOM_3", "CUSTOM_2", + "CUSTOM_1", "APPLICATION_ENTRY_POINT", "SERVICE_LEVEL", "PRIORITY", "DESCRIPTION", "NAME", + "CREATED", "VALID_IN_DOMAIN", "DOMAIN", "TYPE", "CATEGORY", "PARENT_KEY", "PARENT_ID", "KEY") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_CLASSIFICATION_CATEGORY ON CLASSIFICATION + ("CATEGORY" ASC, "DOMAIN" ASC, "TYPE" ASC, "CUSTOM_1" ASC, "CUSTOM_8" ASC, "CUSTOM_7" ASC, + "CUSTOM_6" ASC, "CUSTOM_5" ASC, "CUSTOM_4" ASC, "CUSTOM_3" ASC, "CUSTOM_2" ASC, + "APPLICATION_ENTRY_POINT" ASC, "SERVICE_LEVEL" ASC, "PRIORITY" ASC, "DESCRIPTION" ASC, + "NAME" ASC, "CREATED" ASC, "VALID_IN_DOMAIN" ASC, "PARENT_KEY" ASC, "PARENT_ID" ASC, "KEY" ASC, + "ID" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE UNIQUE INDEX IDX_CLASSIFICATION_KEY_DOMAIN ON CLASSIFICATION + ("KEY" ASC, "DOMAIN" ASC) + INCLUDE ("CUSTOM_8", "CUSTOM_7", "CUSTOM_6", "CUSTOM_5", "CUSTOM_4", "CUSTOM_3", "CUSTOM_2", + "CUSTOM_1", "APPLICATION_ENTRY_POINT", "SERVICE_LEVEL", "PRIORITY", "DESCRIPTION", "NAME", + "CREATED", "VALID_IN_DOMAIN", "TYPE", "CATEGORY", "PARENT_KEY", "PARENT_ID", "ID") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_TASK_WORKBASKET_KEY_DOMAIN ON TASK + ("WORKBASKET_KEY" ASC, "DOMAIN" DESC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_TASK_POR_VALUE ON TASK + (UPPER("POR_VALUE") ASC, "WORKBASKET_ID" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_ATTACHMENT_TASK_ID ON ATTACHMENT + ("TASK_ID" ASC, "RECEIVED" ASC, "CLASSIFICATION_ID" ASC, "CLASSIFICATION_KEY" ASC, + "MODIFIED" ASC, "CREATED" ASC, "ID" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE UNIQUE INDEX IDX_WORKBASKET_ID ON WORKBASKET + ("ID" ASC) + INCLUDE ("ORG_LEVEL_4", "ORG_LEVEL_3", "ORG_LEVEL_2", "ORG_LEVEL_1", "OWNER", "DESCRIPTION", + "TYPE", "DOMAIN", "NAME", "KEY") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE UNIQUE INDEX IDX_WORKBASKET_KEY_DOMAIN ON WORKBASKET + ("KEY" ASC, "DOMAIN" ASC) + INCLUDE ("ORG_LEVEL_4", "ORG_LEVEL_3", "ORG_LEVEL_2", "ORG_LEVEL_1", "CUSTOM_4", "CUSTOM_3", + "CUSTOM_2", "CUSTOM_1", "OWNER", "DESCRIPTION", "TYPE", "NAME", "MODIFIED", "CREATED", "ID") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE UNIQUE INDEX IDX_WORKBASKET_KEY_DOMAIN_ID ON WORKBASKET + ("KEY" ASC, "DOMAIN" ASC) + INCLUDE ("ID") + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_ACCESS_ID ON WORKBASKET_ACCESS_LIST + ("ACCESS_ID" ASC, "WORKBASKET_ID" ASC, "PERM_READ" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; +COMMIT WORK ; + +CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_WORKBASKET_ID ON WORKBASKET_ACCESS_LIST + ("WORKBASKET_ID" ASC, "PERM_CUSTOM_12" ASC, "PERM_CUSTOM_11" ASC, "PERM_CUSTOM_10" ASC, + "PERM_CUSTOM_9" ASC, "PERM_CUSTOM_8" ASC, "PERM_CUSTOM_7" ASC, "PERM_CUSTOM_6" ASC, + "PERM_CUSTOM_5" ASC, "PERM_CUSTOM_4" ASC, "PERM_CUSTOM_3" ASC, "PERM_CUSTOM_2" ASC, + "PERM_CUSTOM_1" ASC, "PERM_DISTRIBUTE" ASC, "PERM_TRANSFER" ASC, "PERM_APPEND" ASC, + "PERM_OPEN" ASC, "PERM_READ" ASC, "ACCESS_ID" ASC) + ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS; + COMMIT WORK ; diff --git a/common/taskana-common/src/main/resources/sql/h2/taskana-schema-h2.sql b/common/taskana-common/src/main/resources/sql/h2/taskana-schema-h2.sql index c497471c6..737abba3a 100644 --- a/common/taskana-common/src/main/resources/sql/h2/taskana-schema-h2.sql +++ b/common/taskana-common/src/main/resources/sql/h2/taskana-schema-h2.sql @@ -14,7 +14,7 @@ CREATE TABLE TASKANA_SCHEMA_VERSION( PRIMARY KEY (ID) ); -- The VERSION value must match the value of TaskanaEngineConfiguration.TASKANA_SCHEMA_VERSION -INSERT INTO TASKANA_SCHEMA_VERSION (VERSION, CREATED) VALUES ('4.11.0', CURRENT_TIMESTAMP); +INSERT INTO TASKANA_SCHEMA_VERSION (VERSION, CREATED) VALUES ('5.0.0', CURRENT_TIMESTAMP); CREATE TABLE CLASSIFICATION( ID VARCHAR(40) NOT NULL, diff --git a/common/taskana-common/src/main/resources/sql/h2/taskana_schema_update_4.11.0_to_5.0.0_h2.sql b/common/taskana-common/src/main/resources/sql/h2/taskana_schema_update_4.11.0_to_5.0.0_h2.sql new file mode 100644 index 000000000..beb987384 --- /dev/null +++ b/common/taskana-common/src/main/resources/sql/h2/taskana_schema_update_4.11.0_to_5.0.0_h2.sql @@ -0,0 +1,5 @@ +-- this script updates the TASKANA database schema from version 4.11.0 to version 5.0.0. + +INSERT INTO TASKANA_SCHEMA_VERSION (VERSION, CREATED) VALUES ('5.0.0', CURRENT_TIMESTAMP); + + diff --git a/common/taskana-common/src/main/resources/sql/postgres/taskana-schema-postgres.sql b/common/taskana-common/src/main/resources/sql/postgres/taskana-schema-postgres.sql index e90948bc0..0a7cadf23 100644 --- a/common/taskana-common/src/main/resources/sql/postgres/taskana-schema-postgres.sql +++ b/common/taskana-common/src/main/resources/sql/postgres/taskana-schema-postgres.sql @@ -9,7 +9,7 @@ CREATE TABLE TASKANA_SCHEMA_VERSION( PRIMARY KEY (ID) ); -- The VERSION value must match the value of TaskanaEngineConfiguration.TASKANA_SCHEMA_VERSION -INSERT INTO TASKANA_SCHEMA_VERSION (VERSION, CREATED) VALUES ('4.11.0', CURRENT_TIMESTAMP); +INSERT INTO TASKANA_SCHEMA_VERSION (VERSION, CREATED) VALUES ('5.0.0', CURRENT_TIMESTAMP); CREATE TABLE CLASSIFICATION( ID VARCHAR(40) NOT NULL, @@ -337,15 +337,14 @@ CREATE SEQUENCE SCHEDULED_JOB_SEQ SET search_path TO taskana; - CREATE INDEX IDX_CLASSIFICATION_1 ON CLASSIFICATION + CREATE INDEX IDX_CLASSIFICATION_ID ON CLASSIFICATION (ID ASC, CUSTOM_8, CUSTOM_7, CUSTOM_6, CUSTOM_5, CUSTOM_4, CUSTOM_3, CUSTOM_2, CUSTOM_1, APPLICATION_ENTRY_POINT, SERVICE_LEVEL, PRIORITY, DESCRIPTION, NAME, MODIFIED, CREATED, VALID_IN_DOMAIN, DOMAIN, TYPE, CATEGORY, PARENT_KEY, PARENT_ID, KEY); COMMIT WORK ; - - CREATE INDEX IDX_CLASSIFICATION_2 ON CLASSIFICATION + CREATE INDEX IDX_CLASSIFICATION_CATEGORY ON CLASSIFICATION (CATEGORY ASC, DOMAIN ASC, TYPE ASC, CUSTOM_1 ASC, CUSTOM_8 ASC, CUSTOM_7 ASC, CUSTOM_6 ASC, CUSTOM_5 ASC, CUSTOM_4 ASC, CUSTOM_3 ASC, CUSTOM_2 @@ -354,8 +353,7 @@ CREATE SEQUENCE SCHEDULED_JOB_SEQ CREATED ASC, VALID_IN_DOMAIN ASC, PARENT_KEY ASC, PARENT_ID ASC, KEY ASC, ID ASC); COMMIT WORK ; - - CREATE INDEX IDX_CLASSIFICATION_3 ON CLASSIFICATION + CREATE INDEX IDX_CLASSIFICATION_KEY_DOMAIN ON CLASSIFICATION (KEY ASC, DOMAIN ASC, CUSTOM_8, CUSTOM_7, CUSTOM_6, CUSTOM_5, CUSTOM_4, CUSTOM_3, CUSTOM_2, CUSTOM_1, APPLICATION_ENTRY_POINT, SERVICE_LEVEL, PRIORITY, @@ -363,45 +361,41 @@ CREATE SEQUENCE SCHEDULED_JOB_SEQ TYPE, CATEGORY, PARENT_KEY, PARENT_ID, ID) ; COMMIT WORK ; - CREATE INDEX IDX_TASK_1 ON TASK + + CREATE INDEX IDX_TASK_WORKBASKET_KEY_DOMAIN ON TASK (WORKBASKET_KEY ASC, DOMAIN DESC); COMMIT WORK ; - - CREATE INDEX IDX_TASK_2 ON TASK + CREATE INDEX IDX_TASK_POR_VALUE ON TASK (UPPER(POR_VALUE) ASC, WORKBASKET_ID ASC); COMMIT WORK ; - CREATE INDEX IDX_ATTACHMENT_1 ON ATTACHMENT - (TASK_ID ASC) ; - COMMIT WORK ; - CREATE INDEX IDX_ATTACHMENT_2 ON ATTACHMENT + CREATE INDEX IDX_ATTACHMENT_TASK_ID ON ATTACHMENT (TASK_ID ASC, RECEIVED ASC, CLASSIFICATION_ID ASC, CLASSIFICATION_KEY ASC, MODIFIED ASC, CREATED ASC, ID ASC) ; COMMIT WORK ; - CREATE INDEX IDX_WORKBASKET_1 ON WORKBASKET + + CREATE INDEX IDX_WORKBASKET_ID ON WORKBASKET (ID ASC, ORG_LEVEL_4, ORG_LEVEL_3, ORG_LEVEL_2, ORG_LEVEL_1, OWNER, DESCRIPTION, TYPE, DOMAIN, NAME, KEY); COMMIT WORK ; - - CREATE INDEX IDX_WORKBASKET_2 ON WORKBASKET + CREATE INDEX IDX_WORKBASKET_KEY_DOMAIN ON WORKBASKET (KEY ASC, DOMAIN ASC, ORG_LEVEL_4, ORG_LEVEL_3, ORG_LEVEL_2, ORG_LEVEL_1, CUSTOM_4, CUSTOM_3, CUSTOM_2, CUSTOM_1, OWNER, DESCRIPTION, TYPE, NAME, MODIFIED, CREATED, ID) ; COMMIT WORK ; - - CREATE INDEX IDX_WORKBASKET_3 ON WORKBASKET + CREATE INDEX IDX_WORKBASKET_KEY_DOMAIN_ID ON WORKBASKET (KEY ASC, DOMAIN ASC, ID) ; COMMIT WORK ; - CREATE INDEX IDX_WBAL_1 ON WORKBASKET_ACCESS_LIST + + CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_ACCESS_ID ON WORKBASKET_ACCESS_LIST (ACCESS_ID ASC, WORKBASKET_ID ASC, PERM_READ ASC) ; COMMIT WORK ; - - CREATE INDEX IDX_WBAL_2 ON WORKBASKET_ACCESS_LIST + CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_WORKBASKET_ID ON WORKBASKET_ACCESS_LIST (WORKBASKET_ID ASC, PERM_CUSTOM_12 ASC, PERM_CUSTOM_11 ASC, PERM_CUSTOM_10 ASC, PERM_CUSTOM_9 ASC, PERM_CUSTOM_8 ASC, PERM_CUSTOM_7 ASC, PERM_CUSTOM_6 ASC, PERM_CUSTOM_5 diff --git a/common/taskana-common/src/main/resources/sql/postgres/taskana_schema_update_4.11.0_to_5.0.0_postgres.sql b/common/taskana-common/src/main/resources/sql/postgres/taskana_schema_update_4.11.0_to_5.0.0_postgres.sql new file mode 100644 index 000000000..374cf63dd --- /dev/null +++ b/common/taskana-common/src/main/resources/sql/postgres/taskana_schema_update_4.11.0_to_5.0.0_postgres.sql @@ -0,0 +1,87 @@ +-- this script updates the TASKANA database schema from version 4.11.0 to version 5.0.0. + +SET search_path = %schemaName%; + +INSERT INTO TASKANA_SCHEMA_VERSION (VERSION, CREATED) VALUES ('5.0.0', CURRENT_TIMESTAMP); + +DROP INDEX IF EXISTS IDX_CLASSIFICATION_1; +CREATE INDEX IDX_CLASSIFICATION_ID ON CLASSIFICATION + (ID ASC, CUSTOM_8, CUSTOM_7, CUSTOM_6, CUSTOM_5, CUSTOM_4, + CUSTOM_3, CUSTOM_2, CUSTOM_1, APPLICATION_ENTRY_POINT, + SERVICE_LEVEL, PRIORITY, DESCRIPTION, NAME, MODIFIED, + CREATED, VALID_IN_DOMAIN, DOMAIN, TYPE, CATEGORY, PARENT_KEY, + PARENT_ID, KEY); +COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_CLASSIFICATION_2; +CREATE INDEX IDX_CLASSIFICATION_CATEGORY ON CLASSIFICATION + (CATEGORY ASC, DOMAIN ASC, TYPE ASC, CUSTOM_1 + ASC, CUSTOM_8 ASC, CUSTOM_7 ASC, CUSTOM_6 ASC, + CUSTOM_5 ASC, CUSTOM_4 ASC, CUSTOM_3 ASC, CUSTOM_2 + ASC, APPLICATION_ENTRY_POINT ASC, SERVICE_LEVEL + ASC, PRIORITY ASC, DESCRIPTION ASC, NAME ASC, + CREATED ASC, VALID_IN_DOMAIN ASC, PARENT_KEY ASC, PARENT_ID + ASC, KEY ASC, ID ASC); +COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_CLASSIFICATION_3; +CREATE INDEX IDX_CLASSIFICATION_KEY_DOMAIN ON CLASSIFICATION + (KEY ASC, DOMAIN ASC, CUSTOM_8, CUSTOM_7, CUSTOM_6, + CUSTOM_5, CUSTOM_4, CUSTOM_3, CUSTOM_2, CUSTOM_1, + APPLICATION_ENTRY_POINT, SERVICE_LEVEL, PRIORITY, + DESCRIPTION, NAME, CREATED, VALID_IN_DOMAIN, + TYPE, CATEGORY, PARENT_KEY, PARENT_ID, ID) ; +COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_TASK_1; +CREATE INDEX IDX_TASK_WORKBASKET_KEY_DOMAIN ON TASK + (WORKBASKET_KEY ASC, DOMAIN DESC); +COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_TASK_2; +CREATE INDEX IDX_TASK_POR_VALUE ON TASK + (UPPER(POR_VALUE) ASC, WORKBASKET_ID ASC); +COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_ATTACHMENT_1; +DROP INDEX IF EXISTS IDX_ATTACHMENT_2; +CREATE INDEX IDX_ATTACHMENT_TASK_ID ON ATTACHMENT + (TASK_ID ASC, RECEIVED ASC, CLASSIFICATION_ID + ASC, CLASSIFICATION_KEY ASC, MODIFIED ASC, CREATED + ASC, ID ASC) ; +COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_WORKBASKET_1; +CREATE INDEX IDX_WORKBASKET_ID ON WORKBASKET + (ID ASC, ORG_LEVEL_4, ORG_LEVEL_3, ORG_LEVEL_2, + ORG_LEVEL_1, OWNER, DESCRIPTION, TYPE, DOMAIN, NAME, KEY); +COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_WORKBASKET_2; +CREATE INDEX IDX_WORKBASKET_KEY_DOMAIN ON WORKBASKET + (KEY ASC, DOMAIN ASC, ORG_LEVEL_4, + ORG_LEVEL_3, ORG_LEVEL_2, ORG_LEVEL_1, CUSTOM_4, + CUSTOM_3, CUSTOM_2, CUSTOM_1, OWNER, DESCRIPTION, + TYPE, NAME, MODIFIED, CREATED, ID) ; +COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_WORKBASKET_3; +CREATE INDEX IDX_WORKBASKET_KEY_DOMAIN_ID ON WORKBASKET + (KEY ASC, DOMAIN ASC, ID) ; + COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_WBAL_1; +CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_ACCESS_ID ON WORKBASKET_ACCESS_LIST + (ACCESS_ID ASC, WORKBASKET_ID ASC, PERM_READ ASC) ; +COMMIT WORK ; + +DROP INDEX IF EXISTS IDX_WBAL_2; +CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_WORKBASKET_ID ON WORKBASKET_ACCESS_LIST + (WORKBASKET_ID ASC, PERM_CUSTOM_12 ASC, PERM_CUSTOM_11 + ASC, PERM_CUSTOM_10 ASC, PERM_CUSTOM_9 ASC, PERM_CUSTOM_8 + ASC, PERM_CUSTOM_7 ASC, PERM_CUSTOM_6 ASC, PERM_CUSTOM_5 + ASC, PERM_CUSTOM_4 ASC, PERM_CUSTOM_3 ASC, PERM_CUSTOM_2 + ASC, PERM_CUSTOM_1 ASC, PERM_DISTRIBUTE ASC, PERM_TRANSFER + ASC, PERM_APPEND ASC, PERM_OPEN ASC, PERM_READ + ASC, ACCESS_ID ASC) ; +COMMIT WORK ; diff --git a/lib/taskana-core/src/main/java/pro/taskana/common/internal/TaskanaEngineImpl.java b/lib/taskana-core/src/main/java/pro/taskana/common/internal/TaskanaEngineImpl.java index 0e1a70b92..4ae640e0c 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/common/internal/TaskanaEngineImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/common/internal/TaskanaEngineImpl.java @@ -76,7 +76,7 @@ import pro.taskana.workbasket.internal.WorkbasketServiceImpl; public class TaskanaEngineImpl implements TaskanaEngine { // must match the VERSION value in table - private static final String MINIMAL_TASKANA_SCHEMA_VERSION = "4.8.0"; + private static final String MINIMAL_TASKANA_SCHEMA_VERSION = "5.0.0"; private static final Logger LOGGER = LoggerFactory.getLogger(TaskanaEngineImpl.class); private static final SessionStack SESSION_STACK = new SessionStack(); private final TaskRoutingManager taskRoutingManager;