text: create table ACT_GE_PROPERTY (
      NAME_ varchar(64) not null,
      VALUE_ varchar(300),
      REV_ integer,
      primary key (NAME_)
  );
  
  insert into ACT_GE_PROPERTY
  values ('schema.version', 'fox', 1);
  
  insert into ACT_GE_PROPERTY
  values ('schema.history', 'create(fox)', 1);
  
  insert into ACT_GE_PROPERTY
  values ('next.dbid', '1', 1);
  
  insert into ACT_GE_PROPERTY
  values ('deployment.lock', '0', 1);
  
  create table ACT_GE_BYTEARRAY (
      ID_ varchar(64) not null,
      REV_ integer,
      NAME_ varchar(255),
      DEPLOYMENT_ID_ varchar(64),
      BYTES_ BLOB,
      GENERATED_ smallint check(GENERATED_ in (1,0)),
      primary key (ID_)
  );
  
  create table ACT_RE_DEPLOYMENT (
      ID_ varchar(64) not null,
      NAME_ varchar(255),
      DEPLOY_TIME_ timestamp,
      SOURCE_ varchar(255),
      primary key (ID_)
  );
  
  create table ACT_RU_EXECUTION (
      ID_ varchar(64) not null,
      REV_ integer,
      PROC_INST_ID_ varchar(64),
      BUSINESS_KEY_ varchar(255),
      PARENT_ID_ varchar(64),
      PROC_DEF_ID_ varchar(64),
      SUPER_EXEC_ varchar(64),
      SUPER_CASE_EXEC_ varchar(64),
      CASE_INST_ID_ varchar(64),
      ACT_ID_ varchar(255),
      ACT_INST_ID_ varchar(64),
      IS_ACTIVE_ smallint check(IS_ACTIVE_ in (1,0)),
      IS_CONCURRENT_ smallint check(IS_CONCURRENT_ in (1,0)),
      IS_SCOPE_ smallint check(IS_SCOPE_ in (1,0)),
      IS_EVENT_SCOPE_ smallint check(IS_EVENT_SCOPE_ in (1,0)),
      SUSPENSION_STATE_ integer,
      CACHED_ENT_STATE_ integer,
      SEQUENCE_COUNTER_ bigint,
      primary key (ID_)
  );
  
  create table ACT_RU_JOB (
      ID_ varchar(64) not null,
      REV_ integer,
      TYPE_ varchar(255) not null,
      LOCK_EXP_TIME_ timestamp,
      LOCK_OWNER_ varchar(255),
      EXCLUSIVE_ smallint check(EXCLUSIVE_ in (1,0)),
      EXECUTION_ID_ varchar(64),
      PROCESS_INSTANCE_ID_ varchar(64),
      PROCESS_DEF_ID_ varchar(64),
      PROCESS_DEF_KEY_ varchar(64),
      RETRIES_ integer,
      EXCEPTION_STACK_ID_ varchar(64),
      EXCEPTION_MSG_ varchar(4000),
      DUEDATE_ timestamp,
      REPEAT_ varchar(255),
      HANDLER_TYPE_ varchar(255),
      HANDLER_CFG_ varchar(4000),
      DEPLOYMENT_ID_ varchar(64),
      SUSPENSION_STATE_ integer not null default 1,
      JOB_DEF_ID_ varchar(64),
      PRIORITY_ bigint not null default 0,
      SEQUENCE_COUNTER_ bigint,
      primary key (ID_)
  );
  
  create table ACT_RU_JOBDEF (
      ID_ varchar(64) not null,
      REV_ integer,
      PROC_DEF_ID_ varchar(64) not null,
      PROC_DEF_KEY_ varchar(255) not null,
      ACT_ID_ varchar(255) not null,
      JOB_TYPE_ varchar(255) not null,
      JOB_CONFIGURATION_ varchar(255),
      SUSPENSION_STATE_ integer,
      JOB_PRIORITY_ bigint,
      primary key (ID_)
  );
  
  create table ACT_RE_PROCDEF (
      ID_ varchar(64) not null,
      REV_ integer,
      CATEGORY_ varchar(255),
      NAME_ varchar(255),
      KEY_ varchar(255) not null,
      VERSION_ integer not null,
      DEPLOYMENT_ID_ varchar(64),
      RESOURCE_NAME_ varchar(4000),
      DGRM_RESOURCE_NAME_ varchar(4000),
      HAS_START_FORM_KEY_ smallint check(HAS_START_FORM_KEY_ in (1,0)),
      SUSPENSION_STATE_ integer,
      primary key (ID_)
  );
  
  create table ACT_RU_TASK (
      ID_ varchar(64) not null,
      REV_ integer,
      EXECUTION_ID_ varchar(64),
      PROC_INST_ID_ varchar(64),
      PROC_DEF_ID_ varchar(64),
      CASE_EXECUTION_ID_ varchar(64),
      CASE_INST_ID_ varchar(64),
      CASE_DEF_ID_ varchar(64),
      NAME_ varchar(255),
      PARENT_TASK_ID_ varchar(64),
      DESCRIPTION_ varchar(4000),
      TASK_DEF_KEY_ varchar(255),
      OWNER_ varchar(255),
      ASSIGNEE_ varchar(255),
      DELEGATION_ varchar(64),
      PRIORITY_ integer,
      CREATE_TIME_ timestamp,
      DUE_DATE_ timestamp,
      FOLLOW_UP_DATE_ timestamp,
      SUSPENSION_STATE_ integer,
      primary key (ID_)
  );
  
  create table ACT_RU_IDENTITYLINK (
      ID_ varchar(64) not null,
      REV_ integer,
      GROUP_ID_ varchar(255),
      TYPE_ varchar(255),
      USER_ID_ varchar(255),
      TASK_ID_ varchar(64),
      PROC_DEF_ID_ varchar(64),
      primary key (ID_)
  );
  
  create table ACT_RU_VARIABLE (
      ID_ varchar(64) not null,
      REV_ integer,
      TYPE_ varchar(255) not null,
      NAME_ varchar(255) not null,
      EXECUTION_ID_ varchar(64),
      PROC_INST_ID_ varchar(64),
      CASE_EXECUTION_ID_ varchar(64),
      CASE_INST_ID_ varchar(64),
      TASK_ID_ varchar(64),
      BYTEARRAY_ID_ varchar(64),
      DOUBLE_ double precision,
      LONG_ bigint,
      TEXT_ varchar(4000),
      TEXT2_ varchar(4000),
      VAR_SCOPE_ varchar(64) not null,
      SEQUENCE_COUNTER_ bigint,
      IS_CONCURRENT_LOCAL_ smallint check(IS_CONCURRENT_LOCAL_ in (1,0)),
      primary key (ID_)
  );
  
  create table ACT_RU_EVENT_SUBSCR (
      ID_ varchar(64) not null,
      REV_ integer,
      EVENT_TYPE_ varchar(255) not null,
      EVENT_NAME_ varchar(255),
      EXECUTION_ID_ varchar(64),
      PROC_INST_ID_ varchar(64),
      ACTIVITY_ID_ varchar(64),
      CONFIGURATION_ varchar(255),
      CREATED_ timestamp not null,
      primary key (ID_)
  );
  
  create table ACT_RU_INCIDENT (
    ID_ varchar(64) not null,
    REV_ integer not null,
    INCIDENT_TIMESTAMP_ timestamp not null,
    INCIDENT_MSG_ varchar(4000),
    INCIDENT_TYPE_ varchar(255) not null,
    EXECUTION_ID_ varchar(64),
    ACTIVITY_ID_ varchar(255),
    PROC_INST_ID_ varchar(64),
    PROC_DEF_ID_ varchar(64),
    CAUSE_INCIDENT_ID_ varchar(64),
    ROOT_CAUSE_INCIDENT_ID_ varchar(64),
    CONFIGURATION_ varchar(255),
    primary key (ID_)
  );
  
  create table ACT_RU_AUTHORIZATION (
    ID_ varchar(64) not null,
    REV_ integer not null,
    TYPE_ integer not null,
    GROUP_ID_ varchar(255),
    USER_ID_ varchar(255),
    RESOURCE_TYPE_ integer not null,
    RESOURCE_ID_ varchar(64),
    PERMS_ integer,
    primary key (ID_),
    UNI_USER_ID_ varchar (255) not null generated always as (case when "USER_ID_" is null then "ID_" else "USER_ID_" end),
    UNI_GROUP_ID_ varchar (255) not null generated always as (case when "GROUP_ID_" is null then "ID_" else "GROUP_ID_" end),
    UNI_RESOURCE_ID_ varchar (64) not null generated always as (case when "RESOURCE_ID_" is null then "ID_" else "RESOURCE_ID_" end)
  );
  
  create table ACT_RU_FILTER (
    ID_ varchar(64) not null,
    REV_ integer not null,
    RESOURCE_TYPE_ varchar(255) not null,
    NAME_ varchar(255) not null,
    OWNER_ varchar(255),
    QUERY_ CLOB not null,
    PROPERTIES_ CLOB,
    primary key (ID_)
  );
  
  create table ACT_RU_METER_LOG (
    ID_ varchar(64) not null,
    NAME_ varchar(64) not null,
    REPORTER_ varchar(255),
    VALUE_ bigint,
    TIMESTAMP_ timestamp not null,
    primary key (ID_)
  );
  
  create table ACT_RU_EXT_TASK (
    ID_ varchar(64) not null,
    REV_ integer not null,
    WORKER_ID_ varchar(255),
    TOPIC_NAME_ varchar(255),
    RETRIES_ integer,
    ERROR_MSG_ varchar(4000),
    LOCK_EXP_TIME_ timestamp,
    SUSPENSION_STATE_ integer,
    EXECUTION_ID_ varchar(64),
    PROC_INST_ID_ varchar(64),
    PROC_DEF_ID_ varchar(64),
    PROC_DEF_KEY_ varchar(255),
    ACT_ID_ varchar(255),
    ACT_INST_ID_ varchar(64),
    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_TASK_ASSIGNEE on ACT_RU_TASK(ASSIGNEE_);
  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_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_);
  create index ACT_IDX_INC_CONFIGURATION on ACT_RU_INCIDENT(CONFIGURATION_);
  create index ACT_IDX_JOB_PROCINST on ACT_RU_JOB(PROCESS_INSTANCE_ID_);
  create unique index ACT_UNIQ_AUTH_USER on ACT_RU_AUTHORIZATION(TYPE_,UNI_USER_ID_,RESOURCE_TYPE_,UNI_RESOURCE_ID_);
  create unique index ACT_UNIQ_AUTH_GROUP on ACT_RU_AUTHORIZATION(TYPE_,UNI_GROUP_ID_,RESOURCE_TYPE_,UNI_RESOURCE_ID_);
  create unique index ACT_UNIQ_VARIABLE on ACT_RU_VARIABLE(VAR_SCOPE_,NAME_);
  create index ACT_IDX_METER_LOG on ACT_RU_METER_LOG(NAME_,TIMESTAMP_);
  create index ACT_IDX_EXT_TASK_TOPIC ON ACT_RU_EXT_TASK(TOPIC_NAME_);
  
  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_);
      
  alter table ACT_RU_EXECUTION
      add constraint ACT_FK_EXE_PROCINST 
      foreign key (PROC_INST_ID_) 
      references ACT_RU_EXECUTION (ID_);
  
  alter table ACT_RU_EXECUTION
      add constraint ACT_FK_EXE_PARENT 
      foreign key (PARENT_ID_) 
      references ACT_RU_EXECUTION (ID_);
      
  alter table ACT_RU_EXECUTION
      add constraint ACT_FK_EXE_SUPER 
      foreign key (SUPER_EXEC_) 
      references ACT_RU_EXECUTION (ID_);
      
  alter table ACT_RU_EXECUTION
      add constraint ACT_FK_EXE_PROCDEF 
      foreign key (PROC_DEF_ID_) 
      references ACT_RE_PROCDEF (ID_);    
      
  alter table ACT_RU_IDENTITYLINK
      add constraint ACT_FK_TSKASS_TASK 
      foreign key (TASK_ID_) 
      references ACT_RU_TASK (ID_);
  
  alter table ACT_RU_IDENTITYLINK
      add constraint ACT_FK_ATHRZ_PROCEDEF 
      foreign key (PROC_DEF_ID_) 
      references ACT_RE_PROCDEF (ID_);
  
  alter table ACT_RU_TASK
      add constraint ACT_FK_TASK_EXE
      foreign key (EXECUTION_ID_)
      references ACT_RU_EXECUTION (ID_);
      
  alter table ACT_RU_TASK
      add constraint ACT_FK_TASK_PROCINST
      foreign key (PROC_INST_ID_)
      references ACT_RU_EXECUTION (ID_);
      
  alter table ACT_RU_TASK
    add constraint ACT_FK_TASK_PROCDEF
    foreign key (PROC_DEF_ID_)
    references ACT_RE_PROCDEF (ID_);
    
  alter table ACT_RU_VARIABLE 
      add constraint ACT_FK_VAR_EXE 
      foreign key (EXECUTION_ID_) 
      references ACT_RU_EXECUTION (ID_);
  
  alter table ACT_RU_VARIABLE
      add constraint ACT_FK_VAR_PROCINST
      foreign key (PROC_INST_ID_)
      references ACT_RU_EXECUTION(ID_);
  
  alter table ACT_RU_VARIABLE 
      add constraint ACT_FK_VAR_BYTEARRAY 
      foreign key (BYTEARRAY_ID_) 
      references ACT_GE_BYTEARRAY (ID_);
  
  alter table ACT_RU_JOB 
      add constraint ACT_FK_JOB_EXCEPTION 
      foreign key (EXCEPTION_STACK_ID_) 
      references ACT_GE_BYTEARRAY (ID_);
      
  alter table ACT_RU_EVENT_SUBSCR
      add constraint ACT_FK_EVENT_EXEC
      foreign key (EXECUTION_ID_)
      references ACT_RU_EXECUTION(ID_);
      
  alter table ACT_RU_INCIDENT
      add constraint ACT_FK_INC_EXE 
      foreign key (EXECUTION_ID_) 
      references ACT_RU_EXECUTION (ID_);
    
  alter table ACT_RU_INCIDENT
      add constraint ACT_FK_INC_PROCINST 
      foreign key (PROC_INST_ID_) 
      references ACT_RU_EXECUTION (ID_);
  
  alter table ACT_RU_INCIDENT
      add constraint ACT_FK_INC_PROCDEF 
      foreign key (PROC_DEF_ID_) 
      references ACT_RE_PROCDEF (ID_);  
  
  alter table ACT_RU_INCIDENT
      add constraint ACT_FK_INC_CAUSE 
      foreign key (CAUSE_INCIDENT_ID_) 
      references ACT_RU_INCIDENT (ID_);
  
  alter table ACT_RU_INCIDENT
      add constraint ACT_FK_INC_RCAUSE
      foreign key (ROOT_CAUSE_INCIDENT_ID_)
      references ACT_RU_INCIDENT (ID_);
  
  alter table ACT_RU_EXT_TASK
      add constraint ACT_FK_EXT_TASK_EXE 
      foreign key (EXECUTION_ID_) 
      references ACT_RU_EXECUTION (ID_);
  
  -- indexes for concurrency problems - https://app.camunda.com/jira/browse/CAM-1646 --
  create index ACT_IDX_EXECUTION_PROC on ACT_RU_EXECUTION(PROC_DEF_ID_);
  create index ACT_IDX_EXECUTION_PARENT on ACT_RU_EXECUTION(PARENT_ID_);
  create index ACT_IDX_EXECUTION_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_);
  create index ACT_IDX_EXECUTION_PROCINST on ACT_RU_EXECUTION(PROC_INST_ID_);
  create index ACT_IDX_EVENT_SUBSCR_EXEC on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_);
  create index ACT_IDX_BA_DEPLOYMENT on ACT_GE_BYTEARRAY(DEPLOYMENT_ID_);
  create index ACT_IDX_IDENT_LNK_TASK on ACT_RU_IDENTITYLINK(TASK_ID_);
  create index ACT_IDX_INCIDENT_EXEC on ACT_RU_INCIDENT(EXECUTION_ID_);
  create index ACT_IDX_INCIDENT_PROCINST on ACT_RU_INCIDENT(PROC_INST_ID_);
  create index ACT_IDX_INCIDENT_PROC_DEF_ID on ACT_RU_INCIDENT(PROC_DEF_ID_);
  create index ACT_IDX_INCIDENT_CAUSE on ACT_RU_INCIDENT(CAUSE_INCIDENT_ID_);
  create index ACT_IDX_INCIDENT_ROOT_CAUSE on ACT_RU_INCIDENT(ROOT_CAUSE_INCIDENT_ID_);
  create index ACT_IDX_JOB_EXCEPTION_STACK on ACT_RU_JOB(EXCEPTION_STACK_ID_);
  create index ACT_IDX_VARIABLE_BA on ACT_RU_VARIABLE(BYTEARRAY_ID_);
  create index ACT_IDX_VARIABLE_EXEC on ACT_RU_VARIABLE(EXECUTION_ID_);
  create index ACT_IDX_VARIABLE_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_);
  create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_);
  create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_);
  create index ACT_IDX_TASK_PROC_DEF_ID on ACT_RU_TASK(PROC_DEF_ID_);
  -- index for deadlock problem - https://app.camunda.com/jira/browse/CAM-4440 --
  create index ACT_IDX_AUTH_RESOURCE_ID on ACT_RU_AUTHORIZATION(RESOURCE_ID_);
  
  -- indexes to improve deployment
  create index ACT_IDX_BYTEARRAY_NAME on ACT_GE_BYTEARRAY(NAME_);
  create index ACT_IDX_DEPLOYMENT_NAME on ACT_RE_DEPLOYMENT(NAME_);
  create index ACT_IDX_JOBDEF_PROC_DEF_ID ON ACT_RU_JOBDEF(PROC_DEF_ID_);
  create index ACT_IDX_JOB_HANDLER_TYPE ON ACT_RU_JOB(HANDLER_TYPE_);
  create index ACT_IDX_EVENT_SUBSCR_EVT_NAME ON ACT_RU_EVENT_SUBSCR(EVENT_NAME_);
  create index ACT_IDX_PROCDEF_DEPLOYMENT_ID ON ACT_RE_PROCDEF(DEPLOYMENT_ID_);
  