Migrating/Upgrading from Neo4j 3.5.20 to 5.9.0

Hi.

We're currently using Neo4j 3.5.20 in our application (single database), and planning to migrate it to 5.9.0 (latest available as of date).

I've gone through the official documentation, and I want to know if my current understanding of migration/upgrade plan is correct?

So as I understand, I'll be taking sequential path and will first Upgrade sequentially from 3.5.20 to 3.5.35 (Note: 3.5.35 is 3.5.latest). And then will migrate from 3.5.35 to 4.0.12 (Note: 4.0.12 is 4.0.latest), and then will upgrade from 4.0.12 To 4.1.latest → 4.2.latest → 4.3.latest → 4.4.latest, and will then migrate from 4.4.latest to 5.0.0 (Note: 5.0.0 is 5.0.latest), and then will finally upgrade from 5.0.0 To 5.1.latest → 5.2.latest → 5.3.latest → 5.4.latest......→ 5.9.0.

I have a question here though:
1: Is it even possible to migrate from 3.5.latest to 5.9.latest? As I didn't find any doco showing this path. All I see is sequential upgrade path from 3.5.latest to 4.4.latest.

2: Is it necessary to upgrade to each version one-by-one from 3.5.20 to 3.5.35 or I can just jump directly from 3.5.20 to 3.5.35? As there are around 15 MINOR versions in between. Same for upgrading between versions of 4.x, can I upgrade directly from 4.0.12 to 4.4.latest? And the same theory between upgrades of 5.x versions.

Thanks!

Try the steps that Described in this link:

Thanks @ameyasoft for pointing to the post. Its very helpful. Can you please reply to question 2 of the OP?

Thanks.

Try the steps described in this link:

With the steps described in the link, there is no need to perform sequential upgrade. Try the steps and let me know.

Hi @ameyasoft - The steps you've mentioned will migrate database from 3.5.x to 5.x. But what about cypher syntax, configs etc? I think these needs to be updated before following your steps as our application currently using 3.5.x compatible cypher syntax, configs.

After upgrading to 5.9, you take all your old constrains and indexes and change them to 5.9 format following the examples mentioned in Neo4j Cypher manual. After that run them against 5.9 database.

Ok. And what about breaking changes on cypher syntax used in application? Ref: Breaking changes between Neo4j v4.4 and Neo4j v5.x - Upgrade and Migration Guide

Yes, you have to modify all your Cypher queries to match 5.x syntax.

Migrating/upgrading from Neo4j 3.5.20 to 5.9.0 involves several steps. It includes ensuring compatibility of existing code, performing a backup of the database, installing the new version, executing the migration scripts provided by Neo4j, testing the upgraded database, and adjusting configurations as necessary for optimal performance and compatibility with the new version.

Upon transitioning to version 5.9, transform existing constraints and indexes into the 5.9 format by referencing the igg game examples outlined in the Neo4j Cypher manual. Subsequently, execute these adaptations on the 5.9 database.