Migration from Camunda 7 to Flowable

Hi,

I’m evaluating the feasability of a migration from Camunda to Flowable.

The application is running on Oracle with Camunda 7.19 Community Edition.

My idea was to run an otherwise blank flowable application against the database schema and see whether the automatic migration works, but, alas, it doesnt.

I’m using Grails 6 and this is how I configured the engine:

// grails-app/conf/spring/resources.groovy
beans = {
    processEngineConfiguration(org.flowable.spring.SpringProcessEngineConfiguration) {
        // Configure your properties here
        flowable5CompatibilityEnabled = true
        flowable5CompatibilityHandlerFactory = ref('flowable5CompabilityFactory')
        transactionManager = ref('transactionManager')
        dataSource = ref('dataSource')
        databaseSchemaUpdate = true
        // Add other properties as needed
    }

    processEngine(org.flowable.spring.ProcessEngineFactoryBean) {
        processEngineConfiguration = ref('processEngineConfiguration')

    }

    flowable5CompabilityFactory(org.activiti.compatibility.spring.SpringFlowable5CompatibilityHandlerFactory)
}

This is the relevant build.gradle:

    implementation 'org.flowable:flowable5-compatibility:7.1.0'
    implementation 'org.flowable:flowable-spring:7.1.0'
    implementation 'org.flowable:flowable5-spring-compatibility:7.1.0'
    implementation 'org.flowable:flowable-engine:7.1.0'

I let the application start, which works fine, and for simplicity I have this controller to let the application initalize:


class EngineController {
    @Autowired SpringProcessEngineConfiguration processEngineConfiguration

    def index() {
        processEngineConfiguration.buildEngine()
    }
}

On sending the request to the the controller, the migration starts, but it is expecting tables to exist, which are not there, yet.

o.f.s.SpringProcessEngineConfiguration   : Found 2 Engine Configurators in total:
o.f.s.SpringProcessEngineConfiguration   : class org.flowable.eventregistry.spring.configurator.SpringEventRegistryConfigurator (priority:100000)
o.f.s.SpringProcessEngineConfiguration   : class org.flowable.idm.engine.configurator.IdmEngineConfigurator (priority:150000)
o.f.s.SpringProcessEngineConfiguration   : Executing beforeInit() of class org.flowable.eventregistry.spring.configurator.SpringEventRegistryConfigurator (priority:100000)
o.f.s.SpringProcessEngineConfiguration   : Executing beforeInit() of class org.flowable.idm.engine.configurator.IdmEngineConfigurator (priority:150000)
o.f.s.SpringProcessEngineConfiguration   : database product name: 'Oracle'
o.f.s.SpringProcessEngineConfiguration   : using database type: oracle
o.f.s.SpringProcessEngineConfiguration   : Found compatibility handler instance : class org.activiti.compatibility.spring.DefaultFlowable5SpringCompatibilityHandler
o.f.c.e.i.a.DefaultAsyncTaskExecutor     : Creating thread pool queue of size 100
o.f.c.e.i.a.DefaultAsyncTaskExecutor     : Creating thread factory with naming pattern flowable-async-task-invoker-thread-%d
o.f.c.e.i.a.DefaultAsyncTaskExecutor     : Creating executor service with corePoolSize 8, maxPoolSize 8 and keepAliveTime 5000
o.f.c.e.i.a.DefaultAsyncTaskExecutor     : Using rejectedExecutionHandler java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy@75921466
o.f.c.e.i.a.DefaultAsyncTaskExecutor     : Creating thread pool queue of size 2048
o.f.c.e.i.a.DefaultAsyncTaskExecutor     : Creating thread factory with naming pattern flowable-async-job-executor-thread-%d
o.f.c.e.i.a.DefaultAsyncTaskExecutor     : Creating executor service with corePoolSize 8, maxPoolSize 8 and keepAliveTime 5000
o.f.s.SpringProcessEngineConfiguration   : Executing configure() of class org.flowable.eventregistry.spring.configurator.SpringEventRegistryConfigurator (priority:100000)
o.f.e.impl.EventRegistryEngineImpl       : EventRegistryEngine default created
o.f.s.SpringProcessEngineConfiguration   : Executing configure() of class org.flowable.idm.engine.configurator.IdmEngineConfigurator (priority:150000)
o.f.idm.engine.impl.IdmEngineImpl        : IdmEngine default created
o.f.c.e.impl.interceptor.LogInterceptor  : --- starting SchemaOperationsEngineBuild --------------------------------------------------------
o.f.c.s.SpringTransactionInterceptor     : Running command with propagation REQUIRED
o.f.c.engine.impl.agenda.AbstractAgenda  : Operation class org.flowable.engine.impl.interceptor.CommandInvoker$1 added to agenda
o.f.e.impl.interceptor.CommandInvoker    : Executing operation class org.flowable.engine.impl.interceptor.CommandInvoker$1
o.f.c.e.i.d.SchemaOperationsEngineBuild  : Executing schema management with setting true from engine bpmn
o.f.c.e.impl.db.CommonDbSchemaManager    : upgrading flowable common schema from 6.1.2.0 to 7.1.0.2
o.f.c.e.impl.db.CommonDbSchemaManager    : Upgrade needed: 6120 -> 6200. Looking for schema update resource for component 'common'
o.f.c.e.impl.db.CommonDbSchemaManager    : performing upgrade on common with resource org/flowable/common/db/upgrade/flowable.oracle.upgradestep.6120.to.6200.common.sql
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: insert into ACT_GE_PROPERTY values ('common.schema.version', '6.2.0.0', 1)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TASK add SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TASK add SUB_SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TASK add SCOPE_TYPE_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TASK add SCOPE_DEFINITION_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_TASK_SCOPE on ACT_RU_TASK(SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_TASK_SUB_SCOPE on ACT_RU_TASK(SUB_SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_TASK_SCOPE_DEF on ACT_RU_TASK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_HI_TASKINST add SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_HI_TASKINST add SUB_SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_HI_TASKINST add SCOPE_TYPE_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_HI_TASKINST add SCOPE_DEFINITION_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_HI_TASK_SCOPE on ACT_HI_TASKINST(SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_HI_TASK_SUB_SCOPE on ACT_HI_TASKINST(SUB_SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_HI_TASK_SCOPE_DEF on ACT_HI_TASKINST(SCOPE_DEFINITION_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_VARIABLE add SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_VARIABLE add SUB_SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_VARIABLE add SCOPE_TYPE_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_RU_VAR_SCOPE_ID_TYPE on ACT_RU_VARIABLE(SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_RU_VAR_SUB_ID_TYPE on ACT_RU_VARIABLE(SUB_SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_HI_VARINST add SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_HI_VARINST add SUB_SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_HI_VARINST add SCOPE_TYPE_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_HI_VAR_SCOPE_ID_TYPE on ACT_HI_VARINST(SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_HI_VAR_SUB_ID_TYPE on ACT_HI_VARINST(SUB_SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : flowable db schema upgrade for component common successful
o.f.c.e.impl.db.CommonDbSchemaManager    : Upgrade needed: 6200 -> 6210. Looking for schema update resource for component 'common'
o.f.c.e.impl.db.CommonDbSchemaManager    : performing upgrade on common with resource org/flowable/common/db/upgrade/flowable.oracle.upgradestep.6200.to.6210.common.sql
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: update ACT_GE_PROPERTY set VALUE_ = '6.2.1.0' where NAME_ = 'common.schema.version'
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_JOB add SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_JOB add SUB_SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_JOB add SCOPE_TYPE_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_JOB add SCOPE_DEFINITION_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TIMER_JOB add SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_TIMER_JOB add SCOPE_ID_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TIMER_JOB add SUB_SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_TIMER_JOB add SUB_SCOPE_ID_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TIMER_JOB add SCOPE_TYPE_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_TIMER_JOB add SCOPE_TYPE_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TIMER_JOB add SCOPE_DEFINITION_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_TIMER_JOB add SCOPE_DEFINITION_ID_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_SUSPENDED_JOB add SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_SUSPENDED_JOB add SCOPE_ID_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_SUSPENDED_JOB add SUB_SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_SUSPENDED_JOB add SUB_SCOPE_ID_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_SUSPENDED_JOB add SCOPE_TYPE_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_SUSPENDED_JOB add SCOPE_TYPE_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

	[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_SUSPENDED_JOB add SCOPE_DEFINITION_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_SUSPENDED_JOB add SCOPE_DEFINITION_ID_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_DEADLETTER_JOB add SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_DEADLETTER_JOB add SCOPE_ID_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_DEADLETTER_JOB add SUB_SCOPE_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_DEADLETTER_JOB add SUB_SCOPE_ID_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_DEADLETTER_JOB add SCOPE_TYPE_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_DEADLETTER_JOB add SCOPE_TYPE_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_DEADLETTER_JOB add SCOPE_DEFINITION_ID_ NVARCHAR2(255)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_DEADLETTER_JOB add SCOPE_DEFINITION_ID_ NVARCHAR2(255)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_JOB_SCOPE on ACT_RU_JOB(SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_JOB_SUB_SCOPE on ACT_RU_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_JOB_SCOPE_DEF on ACT_RU_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_TJOB_SCOPE on ACT_RU_TIMER_JOB(SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_TJOB_SCOPE on ACT_RU_TIMER_JOB(SCOPE_ID_, SCOPE_TYPE_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_TJOB_SUB_SCOPE on ACT_RU_TIMER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_TJOB_SUB_SCOPE on ACT_RU_TIMER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_TJOB_SCOPE_DEF on ACT_RU_TIMER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_TJOB_SCOPE_DEF on ACT_RU_TIMER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_SJOB_SCOPE on ACT_RU_SUSPENDED_JOB(SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_SJOB_SCOPE on ACT_RU_SUSPENDED_JOB(SCOPE_ID_, SCOPE_TYPE_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_SJOB_SUB_SCOPE on ACT_RU_SUSPENDED_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_SJOB_SUB_SCOPE on ACT_RU_SUSPENDED_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_SJOB_SCOPE_DEF on ACT_RU_SUSPENDED_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_SJOB_SCOPE_DEF on ACT_RU_SUSPENDED_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_DJOB_SCOPE on ACT_RU_DEADLETTER_JOB(SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_DJOB_SCOPE on ACT_RU_DEADLETTER_JOB(SCOPE_ID_, SCOPE_TYPE_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_DJOB_SUB_SCOPE on ACT_RU_DEADLETTER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_DJOB_SUB_SCOPE on ACT_RU_DEADLETTER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_DJOB_SCOPE_DEF on ACT_RU_DEADLETTER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_DJOB_SCOPE_DEF on ACT_RU_DEADLETTER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_JOB add CUSTOM_VALUES_ID_ NVARCHAR2(64)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TIMER_JOB add CUSTOM_VALUES_ID_ NVARCHAR2(64)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_TIMER_JOB add CUSTOM_VALUES_ID_ NVARCHAR2(64)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_SUSPENDED_JOB add CUSTOM_VALUES_ID_ NVARCHAR2(64)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_SUSPENDED_JOB add CUSTOM_VALUES_ID_ NVARCHAR2(64)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_DEADLETTER_JOB add CUSTOM_VALUES_ID_ NVARCHAR2(64)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_DEADLETTER_JOB add CUSTOM_VALUES_ID_ NVARCHAR2(64)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_HISTORY_JOB add CUSTOM_VALUES_ID_ NVARCHAR2(64)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_HISTORY_JOB add CUSTOM_VALUES_ID_ NVARCHAR2(64)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_JOB_CUSTOM_VAL_ID on ACT_RU_JOB(CUSTOM_VALUES_ID_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_TJOB_CUSTOM_VAL_ID on ACT_RU_TIMER_JOB(CUSTOM_VALUES_ID_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_TJOB_CUSTOM_VAL_ID on ACT_RU_TIMER_JOB(CUSTOM_VALUES_ID_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_SJOB_CUSTOM_VAL_ID on ACT_RU_SUSPENDED_JOB(CUSTOM_VALUES_ID_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_SJOB_CUSTOM_VAL_ID on ACT_RU_SUSPENDED_JOB(CUSTOM_VALUES_ID_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: create index ACT_IDX_DJOB_CUSTOM_VAL_ID on ACT_RU_DEADLETTER_JOB(CUSTOM_VALUES_ID_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement create index ACT_IDX_DJOB_CUSTOM_VAL_ID on ACT_RU_DEADLETTER_JOB(CUSTOM_VALUES_ID_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_JOB
add constraint ACT_FK_JOB_CUSTOM_VAL
foreign key (CUSTOM_VALUES_ID_)
references ACT_GE_BYTEARRAY (ID_)
o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_TIMER_JOB
add constraint ACT_FK_TJOB_CUSTOM_VAL
foreign key (CUSTOM_VALUES_ID_)
references ACT_GE_BYTEARRAY (ID_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_TIMER_JOB
add constraint ACT_FK_TJOB_CUSTOM_VAL
foreign key (CUSTOM_VALUES_ID_)
references ACT_GE_BYTEARRAY (ID_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_SUSPENDED_JOB
add constraint ACT_FK_SJOB_CUSTOM_VAL
foreign key (CUSTOM_VALUES_ID_)
references ACT_GE_BYTEARRAY (ID_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_SUSPENDED_JOB
add constraint ACT_FK_SJOB_CUSTOM_VAL
foreign key (CUSTOM_VALUES_ID_)
references ACT_GE_BYTEARRAY (ID_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

o.f.c.e.impl.db.CommonDbSchemaManager    : SQL: alter table ACT_RU_DEADLETTER_JOB
add constraint ACT_FK_DJOB_CUSTOM_VAL
foreign key (CUSTOM_VALUES_ID_)
references ACT_GE_BYTEARRAY (ID_)
o.f.c.e.impl.db.CommonDbSchemaManager    : problem during schema upgrade, statement alter table ACT_RU_DEADLETTER_JOB
add constraint ACT_FK_DJOB_CUSTOM_VAL
foreign key (CUSTOM_VALUES_ID_)
references ACT_GE_BYTEARRAY (ID_)

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)

o.f.c.e.impl.interceptor.LogInterceptor  : --- SchemaOperationsEngineBuild finished --------------------------------------------------------
[...]

org.flowable.common.engine.api.FlowableException: couldn't upgrade db schema: alter table ACT_RU_TIMER_JOB add SCOPE_ID_ NVARCHAR2(255)
[...]

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

[...]

oracle.jdbc.OracleDatabaseException: ORA-00942: table or view does not exist

[...]

[...]


o.g.web.errors.GrailsExceptionResolver   : OracleDatabaseException occurred when processing request: [GET] /engine/index
ORA-00942: table or view does not exist

[...]


Due to length restrictions of the forum, I had to cut the stacktraces. If there would be anything hidden required for help I would add another post.

Now, I digged a little bit throught the sources and thought, that maybe if I create these tables myself, it would be all it takes. So, I recreated my test database with the camunda tables and ran this:


create table ACT_RU_TIMER_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),
                                PROC_DEF_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),
                                CREATE_TIME_ TIMESTAMP(6),
                                TENANT_ID_ NVARCHAR2(255) DEFAULT '',
                                primary key (ID_)
);

create table ACT_RU_SUSPENDED_JOB (
                                    ID_ NVARCHAR2(64) NOT NULL,
                                    REV_ INTEGER,
                                    TYPE_ NVARCHAR2(255) NOT NULL,
                                    EXCLUSIVE_ NUMBER(1,0) CHECK (EXCLUSIVE_ IN (1,0)),
                                    EXECUTION_ID_ NVARCHAR2(64),
                                    PROCESS_INSTANCE_ID_ NVARCHAR2(64),
                                    PROC_DEF_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),
                                    CREATE_TIME_ TIMESTAMP(6),
                                    TENANT_ID_ NVARCHAR2(255) DEFAULT '',
                                    primary key (ID_)
);

create table ACT_RU_DEADLETTER_JOB (
                                     ID_ NVARCHAR2(64) NOT NULL,
                                     REV_ INTEGER,
                                     TYPE_ NVARCHAR2(255) NOT NULL,
                                     EXCLUSIVE_ NUMBER(1,0) CHECK (EXCLUSIVE_ IN (1,0)),
                                     EXECUTION_ID_ NVARCHAR2(64),
                                     PROCESS_INSTANCE_ID_ NVARCHAR2(64),
                                     PROC_DEF_ID_ NVARCHAR2(64),
                                     EXCEPTION_STACK_ID_ NVARCHAR2(64),
                                     EXCEPTION_MSG_ NVARCHAR2(2000),
                                     DUEDATE_ TIMESTAMP(6),
                                     REPEAT_ NVARCHAR2(255),
                                     HANDLER_TYPE_ NVARCHAR2(255),
                                     HANDLER_CFG_ NVARCHAR2(2000),
                                     CREATE_TIME_ TIMESTAMP(6),
                                     TENANT_ID_ NVARCHAR2(255) DEFAULT '',
                                     primary key (ID_)
);

create table ACT_RU_HISTORY_JOB (
                                  ID_ NVARCHAR2(64) NOT NULL,
                                  REV_ INTEGER,
                                  LOCK_EXP_TIME_ TIMESTAMP(6),
                                  LOCK_OWNER_ NVARCHAR2(255),
                                  RETRIES_ INTEGER,
                                  EXCEPTION_STACK_ID_ NVARCHAR2(64),
                                  EXCEPTION_MSG_ NVARCHAR2(2000),
                                  HANDLER_TYPE_ NVARCHAR2(255),
                                  HANDLER_CFG_ NVARCHAR2(2000),
                                  ADV_HANDLER_CFG_ID_ NVARCHAR2(64),
                                  CREATE_TIME_ TIMESTAMP(6),
                                  TENANT_ID_ NVARCHAR2(255) DEFAULT '',
                                  primary key (ID_)
);

/

On the next start of the flowable processEngine, I got another error, on adding a not null constraint on a tenant column, so I added this:


insert into ACT_ID_TENANT (ID_, REV_, NAME_) VALUES (1, 0, 'DEFAULT');

UPDATE ACT_RE_PROCDEF set TENANT_ID_ = 1;

COMMIT;

Now, the migration came a little bit further, but now it complained that ACT_RU_TIMER_JOB was already existing! That table I just created before, since the initial migration attempt complained, that it was NOT existing. So, the sequence of migration steps is either confused or my setup is wrong.

There seems to be something fundamentally broken in my attempt to do the migration. Could you please give me a hint, what I am doing wrong here and where my assumptions might be wrong?

From a view posts out there I got the impression that a migration from camunda to flowable was possible, but it seems not the way I am doing it.

Thank you very much!
Andre

Hey @pka01,

Migrating from Camunda 7 to Flowable should be possible. Perhaps something has changed when we did the analysis.

Have you looked into Free Live Migration of Legacy BPMN | Camunda Migration | Activiti Migration | Flowable? It contains a link to the Migration Documentation. We also have a tool called LEAP that you can use to check your models.

From what I can see there might be a problem when moving from Camunda 7 to Flowable 7.1.0 due to the removal of Liquibase. Can you please try to migrate to Flowable 7.0.1 first and then move from Flowable 7.0.1 to Flowable 7.1.0.

Cheers,
Filip

Sometimes it’s so easy! :slight_smile:

Thank you, that did the trick and worked perfectly!

Have a nice weekend!