-
Notifications
You must be signed in to change notification settings - Fork 7
Liquibase auto-creates Node Key constraints on Community edition, causing failure #55
Description
I am using DozerDB 5.26.3.0 with Neo4j Community Edition and trying to run Liquibase migrations.
I use:
docker run -p7474:7474 -p7687:7687
-v "$env:USERPROFILE\neo4j\data:/data" -v "$env:USERPROFILE\neo4j\logs:/logs"
-v "$env:USERPROFILE\neo4j\import:/var/lib/neo4j/import" -v "$env:USERPROFILE\neo4j\plugins:/plugins"
--env NEO4J_AUTH=neo4j/password --env NEO4J_PLUGINS='[\"apoc\"]'
--env NEO4J_apoc_export_file_enabled=true --env NEO4J_apoc_import_file_enabled=true
--env NEO4J_dbms_security_procedures_unrestricted="*" `
graphstack/dozerdb:5.26.3.0
Observed Behavior:
DozerDB automatically creates hidden Liquibase tracking nodes (like __LiquibaseChangeSet, __LiquibaseTag, __LiquibaseLabel)
These nodes use Node Key constraints for uniqueness.
Neo4j CE does not support Node Key constraints, causing a critical database panic:
I also provide logs for better understanding
2025-08-29 10:05:41.280+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index population started: [Index( id=3, name='constraint_5e1c82bb', type='RANGE', schema=(:CompositeAlert {uniqueid}), indexProvider='range-1.0' )]
2025-08-29 10:05:41.935+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index creation finished for index [Index( id=3, name='constraint_5e1c82bb', type='RANGE', schema=(:CompositeAlert {uniqueid}), indexProvider='range-1.0' )].
2025-08-29 10:05:42.061+0000 INFO [o.n.k.i.a.i.IndexingService] [db1/56ca0737] Constraint Index( id=3, name='constraint_5e1c82bb', type='RANGE', schema=(:Label[0] {PropertyKey[10]}), indexProvider='range-1.0' ) is ONLINE.
2025-08-29 10:11:27.295+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index population started: [Index( id=5, name='unique_liquibase_tag', type='RANGE', schema=(:__LiquibaseTag {tag}), indexProvider='range-1.0' )]
2025-08-29 10:11:27.425+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index creation finished for index [Index( id=5, name='unique_liquibase_tag', type='RANGE', schema=(:__LiquibaseTag {tag}), indexProvider='range-1.0' )].
2025-08-29 10:11:27.755+0000 INFO [o.n.k.i.a.i.IndexingService] [db1/56ca0737] Constraint Index( id=5, name='unique_liquibase_tag', type='RANGE', schema=(:Label[1] {PropertyKey[15]}), indexProvider='range-1.0' ) is ONLINE.
2025-08-29 10:11:27.796+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index population started: [Index( id=7, name='unique_liquibase_context', type='RANGE', schema=(:__LiquibaseContext {context}), indexProvider='range-1.0' )]
2025-08-29 10:11:27.822+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index creation finished for index [Index( id=7, name='unique_liquibase_context', type='RANGE', schema=(:__LiquibaseContext {context}), indexProvider='range-1.0' )].
2025-08-29 10:11:27.845+0000 INFO [o.n.k.i.a.i.IndexingService] [db1/56ca0737] Constraint Index( id=7, name='unique_liquibase_context', type='RANGE', schema=(:Label[2] {PropertyKey[16]}), indexProvider='range-1.0' ) is ONLINE.
2025-08-29 10:11:27.880+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index population started: [Index( id=9, name='unique_liquibase_label', type='RANGE', schema=(:__LiquibaseLabel {label}), indexProvider='range-1.0' )]
2025-08-29 10:11:27.904+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index creation finished for index [Index( id=9, name='unique_liquibase_label', type='RANGE', schema=(:__LiquibaseLabel {label}), indexProvider='range-1.0' )].
2025-08-29 10:11:27.925+0000 INFO [o.n.k.i.a.i.IndexingService] [db1/56ca0737] Constraint Index( id=9, name='unique_liquibase_label', type='RANGE', schema=(:Label[3] {PropertyKey[17]}), indexProvider='range-1.0' ) is ONLINE.
2025-08-29 10:11:28.000+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index population started: [Index( id=11, name='node_key_liquibase_change_set', type='RANGE', schema=(:__LiquibaseChangeSet {id, author, changeLog}), indexProvider='range-1.0' )]
2025-08-29 10:11:28.031+0000 INFO [o.n.k.i.a.i.IndexPopulationJob] [db1/56ca0737] Index creation finished for index [Index( id=11, name='node_key_liquibase_change_set', type='RANGE', schema=(:__LiquibaseChangeSet {id, author, changeLog}), indexProvider='range-1.0' )].
2025-08-29 10:11:28.081+0000 ERROR [o.n.m.DatabaseHealth] [db1/56ca0737] Database panic: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details.
org.neo4j.internal.kernel.api.exceptions.TransactionApplyKernelException: Failed to apply transaction: Transaction #27 {started 2025-08-29 10:11:27.938+0000, committed 2025-08-29 10:11:28.061+0000, with 8 commands in this transaction, lease -1, latest committed transaction id when started was 21, consensusIndex: -1}
Caused by: java.lang.IllegalStateException: Node Key constraint requires Neo4j Enterprise Edition