During this exercise, you'll need to migrate a solution from Neo4j 4 to Neo4j 5.
This solution is composed of:
- a Neo4j database deployed on a cluster (3 primaries + 1 secondary)
- data loading scripts
- a Neo4j custom plugin
- a Spring boot based application
- Install required software:
- Java 11 AND Java 17
- Maven
- A decent IDE
- Docker environment such as docker desktop (ask IT) or colima
- Download the maven & docker dependencies of the solution, as this can take a while:
./scripts/download-dependencies.sh
- Deploy the Neo4j cluster as described below, to download the docker images
Deploy the whole solution (database + app):
docker compose -f deployment.yml --profile "*" up
ARM cpu users : change docker image in /app/Dockerfile
from eclipse-temurin:17-jre-alpine
to eclipse-temurin:17-jre-alpine
docker compose -f deployment.yml --profile db up
./scripts/load_data.sh
Different options here:
- Build and run with maven (recommended)
cd app && mvn spring-boot:run
- Build and run in a docker container
docker compose -f deployment.yml --profile app up
You can now access the application using these 2 endpoints:
curl http://localhost:8080/
curl http://localhost:8080/bus/route/43/stops?direction=outbound
- Upgrade
- upgrade the neo4j cluster to v5 (preserving its existing data)
- upgrade the application
- upgrade the scripts
- move to Aura
- replace the local cluster by AuraDB, preserving the existing data
- point the application to Aura
- fix the data loading script
Use the PS tenant: Neo4j PS Team EMEA (GCP) [f18e9993-71ac-528b-82dc-2cdc2c76087b] (login with [email protected])