I am using flowable-engine 6.5.0 in my application. Engine started successfully in my local environment where I have single schema.
When I deployed it to our integration environment, where we have one more schema for flowable( and that is for older version), I start getting this error.
version mismatch: library version is ‘6.5.0.6’, db version is 6.1.2.0
When I debug into the code, I found that it try to find the ACT_GE_PROPERTY in all the available schema for the database user. So it finds the older version there and in next step it try to get/update the table in current schema where it fails.
My question is why it looks into some other schema for this table? How we can disable it?
This thread might help you: Spring Boot integration with a differnet database
You could try this:
config.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE);
Using this will skip the updating of the tables/schema then.
Basically this will only happen your schema migration failed half way. Ideally I would set schemaupdate flag to true instead, and let flowable upgrade to your current vresion which is 6.5.0.6
Which version are you upgrading from? 6.1.2.0?
I am not upgrading.
I have older application using older flowable version with database schema name old_app_db.
I am creating new application with latest flowable version 6.5.0 with database schema name new_app_db.
Both schema are on same mysql database.
When new application starts flowable also check the old_app_db for the table and set it to true.
It comes to ServiceSqlScriptBasedDbSchemaManager class. isUpdateNeeded internall check old db schema and returns true(Table exists) . Then getSchemaVersion() again tries to find the same table in new schema and fails.
@Override
public void schemaCreate() {
if (isUpdateNeeded()) {
String dbVersion = getSchemaVersion();
if (!FlowableVersions.CURRENT_VERSION.equals(dbVersion)) {
throw new FlowableWrongDbException(FlowableVersions.CURRENT_VERSION, dbVersion);
}
} else {
internalDbSchemaCreate();
}
}
Note : It worked fine when I created a database users for each schema which do not have access to other schema.
Both should work in isolation unless you are loading multiple process engines accidentally. Check the logs it does state all the process engines it creates at startup. Flowable would only know about the other schema if you set it in datasource configuration of the process configuration.