Supported upgrade and migration paths

This section explains the supported upgrade and migration paths.

Which path you choose depends on your current version and the version you want to go to; if you are going to upgrade or migrate the whole Neo4j DBMS or a single database; and your backup and restore strategy.

  • sequential (Neo4j DBMS) — 3.5.latest → 4.0.latest → 4.1.latest → 4.2.latest → 4.3.latest → 4.4.latest
    It includes migration and follow-up upgrades of the whole Neo4j DBMS (both the databases and system database).

  • direct migration (Neo4j 3.5 only) — Neo4j Community or Enterprise Edition 3.5.latest → Neo4j Enterprise Edition 4.x.latest
    It makes use of the neo4j-admin copy command to migrate the data store of the single 3.5 database.

    The neo4j-admin copy command is a Neo4j Enterprise Edition feature. You can use it to migrate from Neo4j Community Edition to Neo4j Enterprise Edition.

  • copy or restore a single database backup into a running Neo4j DBMS on a later version.

upgrade paths

1. Sequential path (Neo4j DBMS)

Following the sequential path, you first migrate your Neo4j deployment from 3.5.latest to 4.0.latest and then sequentially upgrade it to 4.1.latest, 4.2.latest, 4.3.latest, and 4.4.latest. It makes use of neo4-admin load or neo4j-admin restore to copy both the databases and the system database or backups to the new installation, and then it upgrades the data and schema stores to the new version during the Neo4j startup. The neo4j-admin commands can be run from an online, as well as from an offline Neo4j DBMS, and must be invoked as the neo4j user to ensure the appropriate file permissions.

Table 1. Documentation for completing your upgrade/migration
Starting version Target version Supported path Operations Documentation

3.4.latest

3.5.latest

3.4.latest → 3.5.latest

Upgrade

3.5.latest

4.0.latest

3.5.latest → 4.0.latest

Migration

3.5.latest

4.1.latest

3.5.latest → 4.0.latest → 4.1.latest

Migration and upgrade

3.5.latest

4.2.latest

3.5.latest → 4.0.latest → 4.1.latest → 4.2.latest

Migration and upgrades

3.5.latest

4.3.latest

3.5.latest → 4.0.latest → 4.1.latest → 4.2.latest → 4.3.latest

Migration and upgrades

3.5.latest

4.4.latest

3.5.latest → 4.0.latest → 4.1.latest → 4.2.latest → 4.3.latest → 4.4.latest

Migration and upgrades

4.0.latest

4.1.latest

4.0.latest → 4.1.latest

Upgrade

4.0.latest

4.2.latest

4.0.latest → 4.1.latest → 4.2.latest

Upgrades

4.0.latest

4.3.latest

4.0.latest → 4.1.latest → 4.2.latest → 4.3.latest

Upgrades

4.0.latest

4.4.latest

4.0.latest → 4.1.latest → 4.2.latest → 4.3.latest → 4.4.latest

Upgrades

4.1.latest

4.2.latest

4.1.latest → 4.2.latest

Upgrade

4.1.latest

4.3.latest

4.1.latest → 4.2.latest → 4.3.latest

Upgrade

4.1.latest

4.4.latest

4.1.latest → 4.2.latest → 4.3.latest → 4.4.latest

Upgrade

4.2.latest

4.3.latest

4.2.latest → 4.3.latest

Upgrade

4.2.latest

4.4.latest

4.2.latest → 4.3.latest → 4.4.latest

Upgrade

4.3.latest

4.4.latest

4.3.latest → 4.4.latest

Upgrade

2. Direct migration path (Neo4j 3.5 only)

The direct migration path (3.5 → 4.x) makes use of the neo4j-admin copy command to migrate the store_format of a single 3.5 database. Because, the command does not copy the schema store, the intermediary steps of the sequential path are not needed. If a schema is defined, you have to recreate it by running the commands that the neo4j-admin copy operation outputs.

This path is suitable if you want to migrate a 3.5 Neo4j DBMS (Community or Enterprise) to 4.x Enterprise because the 3.5 DBMS contains just a single database.

The neo4j-admin copy command copies the node IDs, but the relationships get new IDs.

Therefore, if you want to preserve the relationship IDs, you should follow the sequential path.

3. Copy or restore a single database into a running Neo4j DBMS

You can use the neo4j-admin copy or neo4j-admin restore commands to copy or restore a backup of a single database into a running Neo4j DBMS on a later version.

The neo4j-admin restore command can be used to restore a database backup into a running Neo4j DBMS on a later version. However, it does not migrate the store_format of the database. Therefore, if the restored database is not on the same store format as the DBMS, you will have to set dbms.allow_upgrade=true to enable the migration. For versions earlier than 4.1, you have to restart the DBMS for the configuration to take effect.

For more information, see Tutorials.