Missing Primary Key in DATABASECHANGELOG Table

Hello community!

I’m currently facing an issue with Liquibase in the context of MySQL InnoDB Cluster deployments. MySQL InnoDB Cluster necessitates that all tables intended for replication must have either a primary key or a not-null unique constraint. However, upon inspecting the schema generated by Liquibase, I’ve noticed that the critical DATABASECHANGELOG table, essential for Liquibase’s tracking of applied changes, lacks a primary key.

This becomes a significant hurdle for integrating Keycloak with MySQL InnoDB Cluster, as Keycloak relies on Liquibase for database migrations but encounters compatibility issues due to the absence of a primary key in the DATABASECHANGELOG table.

My primary inquiry is whether Liquibase currently supports MySQL InnoDB Cluster deployments or if there are any known workarounds or solutions to address this issue. Has anyone else encountered a similar obstacle, and if so, how was it resolved?

Any insights, suggestions, or guidance on how to proceed with the installation and integration of Liquibase with MySQL InnoDB Cluster would be greatly appreciated.

Thank you for your time and assistance.


Liquibase does not create a PK on the databasechangelog table, as described here:

You can create one if you’d like.

Here are the MySQL getting started instructions: