There's an exiting new feature in this release: Predefined database refactorings, such as "rename the label `Movie` into `Film`" or "normalise all properties that have the values `ja`, `yes` and `y` and all of `nein`, `no`, `vielleicht` into a boolean `true` respectively `false`". Those refactorings are largely modeled after [apoc.refactor](https://neo4j.com/labs/apoc/4.4/overview/apoc.refactor/) but *do not* require APOC to be installed and run into pure Cypher. They even do support batching in Neo4j 4.4 or higher.
Some inspiration has been taken from fbiville's post about [Graph Refactoring: The Hard Way](https://medium.com/neo4j/graph-refactoring-the-hard-way-5762067ead46) for the general initiative and the `Merge.nodes` refactoring. Thanks for that, Florent!
The refactorings of this project here are in [`ac.simons.neo4j.migrations.core.refactorings`](https://github.com/michael-simons/neo4j-migrations/tree/main/neo4j-migrations-core/src/main/java/ac/simons/neo4j/migrations/core/refactorings) and can actually be used without the migrations itself, a connected Neo4j driver instance will be enough to use them. We will maybe extract them into a separate module or even separate library in a new org at a later stage. Until than, they will be part of the publicly maintained API here. Have a look at the document how to use them in catalogs or standalone (full example [here](https://michael-simons.github.io/neo4j-migrations/current/#concepts_migrations_catalog-based) and a list of [predefined refactorings](https://michael-simons.github.io/neo4j-migrations/current/#appendix_refactorings)).
This feature does not have *any* breaking changes to the core, so 1.10.0 is a drop-in replacement of 1.9 and depending if you are using it in Spring Boot or Quarkus and your versions there, for 1.8 or 1.7, too.
๐ Features
- cbd1075 Add refactoring `Normalize.asBoolean`. (606)
- 2ec53be Add support for running predefined refactorings. (605)
๐ Bug Fixes
- 36459cc Escape escaped Unicode 0060 (backtick) proper. (607)
๐๏ธ Refactorings
- 794238f Don't double escape already escaped backticks. (604)
๐ Documentation
- 7ea2bd8 Add JavaDoc where required.
- ff0a922 Update local changelog.
๐งน Housekeeping
- 2a1ca61 Bump spring-boot.version from 2.7.2 to 2.7.3 (610)
Contributors
We'd like to thank the following people for their contributions:
- meistermeier