create table ACT_GE_PROPERTY ( NAME_ NVARCHAR2(64), VALUE_ NVARCHAR2(300), REV_ INTEGER, primary key (NAME_) ); insert into ACT_GE_PROPERTY values ('schema.version', '5.12-SNAPSHOT', 1); insert into ACT_GE_PROPERTY values ('schema.history', 'create(5.12-SNAPSHOT)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); create table ACT_GE_BYTEARRAY ( ID_ NVARCHAR2(64), REV_ INTEGER, NAME_ NVARCHAR2(255), DEPLOYMENT_ID_ NVARCHAR2(64), BYTES_ BLOB, GENERATED_ NUMBER(1,0) CHECK (GENERATED_ IN (1,0)), primary key (ID_) ); create table ACT_RE_DEPLOYMENT ( ID_ NVARCHAR2(64), NAME_ NVARCHAR2(255), CATEGORY_ NVARCHAR2(255), DEPLOY_TIME_ TIMESTAMP(6), primary key (ID_) ); create table ACT_RU_EXECUTION ( ID_ NVARCHAR2(64), REV_ INTEGER, PROC_INST_ID_ NVARCHAR2(64), BUSINESS_KEY_ NVARCHAR2(255), PARENT_ID_ NVARCHAR2(64), PROC_DEF_ID_ NVARCHAR2(64), SUPER_EXEC_ NVARCHAR2(64), ACT_ID_ NVARCHAR2(255), IS_ACTIVE_ NUMBER(1,0) CHECK (IS_ACTIVE_ IN (1,0)), IS_CONCURRENT_ NUMBER(1,0) CHECK (IS_CONCURRENT_ IN (1,0)), IS_SCOPE_ NUMBER(1,0) CHECK (IS_SCOPE_ IN (1,0)), IS_EVENT_SCOPE_ NUMBER(1,0) CHECK (IS_EVENT_SCOPE_ IN (1,0)), SUSPENSION_STATE_ INTEGER, CACHED_ENT_STATE_ INTEGER, primary key (ID_) ); create table ACT_RU_JOB ( ID_ NVARCHAR2(64) NOT NULL, REV_ INTEGER, TYPE_ NVARCHAR2(255) NOT NULL, LOCK_EXP_TIME_ TIMESTAMP(6), LOCK_OWNER_ NVARCHAR2(255), EXCLUSIVE_ NUMBER(1,0) CHECK (EXCLUSIVE_ IN (1,0)), EXECUTION_ID_ NVARCHAR2(64), PROCESS_INSTANCE_ID_ NVARCHAR2(64), RETRIES_ INTEGER, EXCEPTION_STACK_ID_ NVARCHAR2(64), EXCEPTION_MSG_ NVARCHAR2(2000), DUEDATE_ TIMESTAMP(6), REPEAT_ NVARCHAR2(255), HANDLER_TYPE_ NVARCHAR2(255), HANDLER_CFG_ NVARCHAR2(2000), primary key (ID_) ); create table ACT_RE_PROCDEF ( ID_ NVARCHAR2(64) NOT NULL, REV_ INTEGER, CATEGORY_ NVARCHAR2(255), NAME_ NVARCHAR2(255), KEY_ NVARCHAR2(255) NOT NULL, VERSION_ INTEGER NOT NULL, DEPLOYMENT_ID_ NVARCHAR2(64), RESOURCE_NAME_ NVARCHAR2(2000), DGRM_RESOURCE_NAME_ varchar(4000), DESCRIPTION_ NVARCHAR2(2000), HAS_START_FORM_KEY_ NUMBER(1,0) CHECK (HAS_START_FORM_KEY_ IN (1,0)), SUSPENSION_STATE_ INTEGER, primary key (ID_) ); create table ACT_RU_TASK ( ID_ NVARCHAR2(64), REV_ INTEGER, EXECUTION_ID_ NVARCHAR2(64), PROC_INST_ID_ NVARCHAR2(64), PROC_DEF_ID_ NVARCHAR2(64), NAME_ NVARCHAR2(255), PARENT_TASK_ID_ NVARCHAR2(64), DESCRIPTION_ NVARCHAR2(2000), TASK_DEF_KEY_ NVARCHAR2(255), OWNER_ NVARCHAR2(255), ASSIGNEE_ NVARCHAR2(255), DELEGATION_ NVARCHAR2(64), PRIORITY_ INTEGER, CREATE_TIME_ TIMESTAMP(6), DUE_DATE_ TIMESTAMP(6), primary key (ID_) ); create table ACT_RU_IDENTITYLINK ( ID_ NVARCHAR2(64), REV_ INTEGER, GROUP_ID_ NVARCHAR2(255), TYPE_ NVARCHAR2(255), USER_ID_ NVARCHAR2(255), TASK_ID_ NVARCHAR2(64), PROC_DEF_ID_ NVARCHAR2(64), primary key (ID_) ); create table ACT_RU_VARIABLE ( ID_ NVARCHAR2(64) not null, REV_ INTEGER, TYPE_ NVARCHAR2(255) not null, NAME_ NVARCHAR2(255) not null, EXECUTION_ID_ NVARCHAR2(64), PROC_INST_ID_ NVARCHAR2(64), TASK_ID_ NVARCHAR2(64), BYTEARRAY_ID_ NVARCHAR2(64), DOUBLE_ NUMBER(*,10), LONG_ NUMBER(19,0), TEXT_ NVARCHAR2(2000), TEXT2_ NVARCHAR2(2000), primary key (ID_) ); create table ACT_RU_EVENT_SUBSCR ( ID_ NVARCHAR2(64) not null, REV_ integer, EVENT_TYPE_ NVARCHAR2(255) not null, EVENT_NAME_ NVARCHAR2(255), EXECUTION_ID_ NVARCHAR2(64), PROC_INST_ID_ NVARCHAR2(64), ACTIVITY_ID_ NVARCHAR2(64), CONFIGURATION_ NVARCHAR2(255), CREATED_ TIMESTAMP(6) not null, primary key (ID_) ); create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_); create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_); create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_); create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_); create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_); create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_); create index ACT_IDX_BYTEAR_DEPL on ACT_GE_BYTEARRAY(DEPLOYMENT_ID_); alter table ACT_GE_BYTEARRAY add constraint ACT_FK_BYTEARR_DEPL foreign key (DEPLOYMENT_ID_) references ACT_RE_DEPLOYMENT (ID_); alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_); create index ACT_IDX_EXE_PROCINST on ACT_RU_EXECUTION(PROC_INST_ID_); alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PROCINST foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_EXE_PARENT on ACT_RU_EXECUTION(PARENT_ID_); alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PARENT foreign key (PARENT_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_EXE_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_); alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_SUPER foreign key (SUPER_EXEC_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_EXE_PROCDEF on ACT_RU_EXECUTION(PROC_DEF_ID_); alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PROCDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); create index ACT_IDX_TSKASS_TASK on ACT_RU_IDENTITYLINK(TASK_ID_); alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_TSKASS_TASK foreign key (TASK_ID_) references ACT_RU_TASK (ID_); create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_ATHRZ_PROCEDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_EXE foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCINST foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_TASK_PROCDEF on ACT_RU_TASK(PROC_DEF_ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); create index ACT_IDX_VAR_EXE on ACT_RU_VARIABLE(EXECUTION_ID_); alter table ACT_RU_VARIABLE add constraint ACT_FK_VAR_EXE foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_VAR_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_); alter table ACT_RU_VARIABLE add constraint ACT_FK_VAR_PROCINST foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION(ID_); create index ACT_IDX_VAR_BYTEARRAY on ACT_RU_VARIABLE(BYTEARRAY_ID_); alter table ACT_RU_VARIABLE add constraint ACT_FK_VAR_BYTEARRAY foreign key (BYTEARRAY_ID_) references ACT_GE_BYTEARRAY (ID_); create index ACT_IDX_JOB_EXCEPTION on ACT_RU_JOB(EXCEPTION_STACK_ID_); alter table ACT_RU_JOB add constraint ACT_FK_JOB_EXCEPTION foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); create index ACT_IDX_EVENT_SUBSCR on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_); alter table ACT_RU_EVENT_SUBSCR add constraint ACT_FK_EVENT_EXEC foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION(ID_); -- see http://stackoverflow.com/questions/675398/how-can-i-constrain-multiple-columns-to-prevent-duplicates-but-ignore-null-value create unique index ACT_UNIQ_RU_BUS_KEY on ACT_RU_EXECUTION (case when BUSINESS_KEY_ is null then null else PROC_DEF_ID_ end, case when BUSINESS_KEY_ is null then null else BUSINESS_KEY_ end);