Liquibase Validation Failed for db-scripts-3.6.0.zip

Hi,

My application database user does not have those rights to create tables, primary keys, foreign keys, indexes etc. so I’m using Liquibase to run the provided database scripts to create Flowable database objects.

I’m getting the following exception when Liquibase run the scripts from db-scripts-3.6.0.zip:

Caused by: liquibase.exception.ValidationFailedException: Validation Failed:
     1 change sets check sum
          org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml::1::flowable was: 7:0aaa7b01343f4cdaf1019cd2de3f98f3 but is now: 8:1b0c48c9cf7945be799d868a2626d687
  • The md5 7:0aaa7b01343f4cdaf1019cd2de3f98f3 is from flowable.engine.h2.all.create.sql script:
INSERT INTO FLW_EV_DATABASECHANGELOG (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, DESCRIPTION, COMMENTS, EXECTYPE, CONTEXTS, LABELS, LIQUIBASE, DEPLOYMENT_ID) VALUES ('1', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', NOW(), 1, '7:0aaa7b01343f4cdaf1019cd2de3f98f3', 'createTable tableName=FLW_EVENT_DEPLOYMENT; createTable tableName=FLW_EVENT_RESOURCE; createTable tableName=FLW_EVENT_DEFINITION; createIndex indexName=ACT_IDX_EVENT_DEF_UNIQ, tableName=FLW_EVENT_DEFINITION; createTable tableName=FLW_CHANNEL_DEFIN...', '', 'EXECUTED', NULL, NULL, '3.5.3', '6093920445');
  • The md5 8:1b0c48c9cf7945be799d868a2626d687 is generated by Liquibase for flowable-eventregistry-db-changelog.xml file from library org.flowable:flowable-event-registry:6.5.0.17

So for the moment I have to use flowable.databaseSchemaUpdate=none.

Do I have to use a specific version of Liquibase? Currently I’m using the one that comes as dependency from Flowable which is org.liquibase:liquibase-core:3.8.0.

Thanks,
Ovidiu

When you use the .sql files, there’s no need for using Liquibase. So you can put databaseSchemaUpdate to false indeed.

Ok. But since I’m using Liquibase for my own objects (not Flowable), along this I added the scripts for Flowable to have all them in one place. The Flowable objects got created correctly but the validation fails when set databaseSchemaUpdate=false.
Do I have to manually update all the scripts to use the correct md5, like 8:1b0c48c9cf7945be799d868a2626d687 ?

Ok, if you have liquibase in your project already that changes the fact. Putting it to ‘none’ (or any other value, as there’s no check on it) instead of false would do that.

What do you mean by ‘would do that’?

Having Liquibase on project will change the validation behavior? Are there many validation mechanisms for Flowable and the Liquibase validation is only one of them?

What I meant is: it would bypass the hash check by liquibase.

No. What I meant to say is that when going with the sql files, it’s not possible to use liquibase (even its validation).

Ok. Thanks for your reply.