Neo4j-Migrations is a database refactoring tool for Neo4j. It takes care of managing Cypher scripts by checksumming them and applying them in a controlled fashion, including pre-conditions and repeatable migrations. In addition it contains a set of predefined refactoring such as renaming a set of labels or types and changing relationships.
It comes as a standalone API, as CLI and as a plugin for major Java frameworks such as Spring Boot or Quarkus. The CLI does not need to have JVM installed, it is build with GraalVM and available as native executable for various operation systems and architectures:
The 2.0 release is now build on Java 17. Previous baseline was Java 8, but Java 8's time is coming to an end, at least in non-commercial settings.
This allows us to support Spring Boot 3 (released in November 2022, also on Java 17) and make use of the latest Java-Driver for Neo4j which also requires Java 17.
Apart from that, the GraalVM, an Oracle Labs project we are using to produce native binaries, stopped supporting Java 8 a while back and we have been stuck on an old version ever since.
In addition, our code base got smaller because we don't do multi-release jars anymore and we can of course benefit from all the new features since Java 8, such as text blocks, records, switch statements and the like.
The project uses rather strict semantic versioning. On the one hand, we try to not break our users ever without a proper warning and on the other hand, try to support as many Neo4j major versions as possible without our users ever noticing that we adapt behind the scenes.
Open Source Project name
neo4j-migrations
What is your project?
Neo4j-Migrations is a database refactoring tool for Neo4j. It takes care of managing Cypher scripts by checksumming them and applying them in a controlled fashion, including pre-conditions and repeatable migrations. In addition it contains a set of predefined refactoring such as renaming a set of labels or types and changing relationships.
It comes as a standalone API, as CLI and as a plugin for major Java frameworks such as Spring Boot or Quarkus. The CLI does not need to have JVM installed, it is build with GraalVM and available as native executable for various operation systems and architectures:
Here's the main author of the project giving a presentation of the project at Neo4j's Nodes2022 conference: https://www.youtube.com/watch?v=5-j0xiVAeoM
Version
2.0
Date
2022-12-05
Description of breaking changes
The 2.0 release is now build on Java 17. Previous baseline was Java 8, but Java 8's time is coming to an end, at least in non-commercial settings.
This allows us to support Spring Boot 3 (released in November 2022, also on Java 17) and make use of the latest Java-Driver for Neo4j which also requires Java 17. Apart from that, the GraalVM, an Oracle Labs project we are using to produce native binaries, stopped supporting Java 8 a while back and we have been stuck on an old version ever since.
In addition, our code base got smaller because we don't do multi-release jars anymore and we can of course benefit from all the new features since Java 8, such as text blocks, records, switch statements and the like.
GitHub Repo
https://github.com/michael-simons/neo4j-migrations
Website
https://neo4j.com/labs/neo4j-migrations/2.0/introduction/
Link to changelog
https://github.com/michael-simons/neo4j-migrations/releases/tag/2.0.0
Social media
https://twitter.com/rotnroll666/status/1599775753360396288
Anything else to add?
The project uses rather strict semantic versioning. On the one hand, we try to not break our users ever without a proper warning and on the other hand, try to support as many Neo4j major versions as possible without our users ever noticing that we adapt behind the scenes.