Neo4j-Migrations: Manage schema changes with ease

Neo4j-Migrations is a set of tools to make your schema migrations as easy as possible. It provides a uniform way for applications, the command line and build tools alike to track, manage and apply changes to your database. It is inspired to a large extent by FlywayDB, so most things evolve around Cypher-Scripts. Neo4j-Migrations builds directly on top of the official Neo4j-Java-Driver, supports Neo4j 3.5, Neo4j 4.1 to 4.4 and Neo4j 5, including enterprise features such as multidatabase support and impersonation.

All provided modules have feature parity: Commands in the API reflect in the CLI, in the Maven as well as in the Spring Boot integration


  • Directly based on the official Neo4j-Java-Driver (Bolt), no JDBC required

  • Works well with dynamic environments such as Neo4j Aura by using transactional functions throughout the whole stack

  • Can use different database for storing migration information and for applying actual migrations (Separation of the database being managed and the database containing the management information)

  • Supports Impersonation

  • Core Java API with guaranteed semantic versioning to be used in any way you prefer

  • Provides a Spring Boot Starter that hooks into the official Spring Boot support for Neo4j so that only migrations scripts need to be provided

  • Provides a Maven-plugin for running migrations during build-time

  • Native CLI tools for Linux, macOS and Windows, no Java required to run migrations via the CLI

  • Native CLI for macOS can be installed via the homebrew package-manager

  • The Java API allows for very custom migrations written in Java, using the official driver for special cases in which Cypher might not be sufficient