Skip to content

Liquibase auto-creates Node Key constraints on Community edition, causing failure #55

@PANKAJDUBEY2002

Description

@PANKAJDUBEY2002

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions