Releases: michael-simons/neo4j-migrations
1.12.0
What's Changed
There has been no breaking changes in this release, but we have added some methods and moved things around that haven't been public before to improve your life in case you should use this library on the module path.
🚀 Features
- ad76526 Log connection details during Spring and Quarkus startup. (#655)
- f6f6ef9 Try to detect invalid use of enterprise constraints against community edition. (#654)
🐛 Bug Fixes
- 08ec086 Add braces to single property node key constraints statements for elder versions. (#653)
- 7a949bd Add several missing JMS requirements and necessities to public API. (#646)
📝 Documentation
🧹 Housekeeping
1.11.0
What's Changed
This release contains the second Java annotation processor I wrote and I am very excited about it: You can point this tool from within Javac to entities annotated with Neo4j-OGM OR Spring Data Neo4j 6 annotations and it will produce catalog files containing the indexes and constraints that can be derived by the annotated classes.
All indexes and constraints of the Neo4j-OGM auto index manager and all SDN6 annotations are supported. The annotation processor does not ship the dependencies itself, so one possible invocation looks like this:
javac -proc:only \
-processorpath neo4j-migrations-1.11.0.jar:neo4j-migrations-annotation-processor-api-1.11.0.jar:neo4j-migrations-annotation-processor-1.11.0.jar \
-Aorg.neo4j.migrations.catalog_generator.output_dir=output \
-Aorg.neo4j.migrations.catalog_generator.default_catalog_name=V01__Create_OGM_schema.xml \
-cp neo4j-ogm-core-3.2.37.jar \
path/to/annotated/entities/*
Please have a look at "Annotation processing" in the manual how to run this for SDN6 and possible ways to integrate it into your build.
One possible output - outlining just some of the constraints - will look like this
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<migration xmlns="https://michael-simons.github.io/neo4j-migrations">
<!-- This file was generated by Neo4j-Migrations at 2022-09-21T21:21:00+01:00. -->
<catalog>
<indexes>
<index name="my_entities_ogm_singleindexentity_login_property" type="property">
<label>Entity</label>
<properties>
<property>login</property>
</properties>
</index>
<index name="my_entities_ogm_relpropertyindextentity_description_property" type="property">
<type>RELPROPERTYINDEXTENTITY</type>
<properties>
<property>description</property>
</properties>
</index>
<index name="my_entities_ogm_compositeindexentity_name_age_property" type="property">
<label>EntityWithCompositeIndex</label>
<properties>
<property>name</property>
<property>age</property>
</properties>
</index>
</indexes>
<constraints>
<constraint name="my_entities_ogm_entitywithassignedid_id_unique" type="unique">
<label>EntityWithAssignedId</label>
<properties>
<property>id</property>
</properties>
</constraint>
<constraint name="my_entities_ogm_nodepropertyexistenceconstraintentity_login_exists" type="exists">
<label>Entity</label>
<properties>
<property>login</property>
</properties>
</constraint>
<constraint name="my_entities_ogm_relpropertyexistenceconstraintentity_description_exists" type="exists">
<type>REL</type>
<properties>
<property>description</property>
</properties>
</constraint>
<constraint name="my_entities_ogm_nodekeyconstraintentity_name_age_key" type="key">
<label>Entity</label>
<properties>
<property>name</property>
<property>age</property>
</properties>
</constraint>
</constraints>
</catalog>
<apply/>
</migration>
This catalog can than be added to your CI/CD or application setup as described in the manual. We do not recommend regenerating it every time in the build as that will break the chain of migrations once you change entities. This might be seen as an inconvenience but we are convinced that a half-automated process here is better than the auto index manager of old that might surprises you with it's upgrade mechanism.
This also the first release that that will ship with Linux ARM64 ootb.
While we did bump the minor version, there are no breaking changes.
🚀 Features
🐛 Bug Fixes
🔄️ Refactorings
📝 Documentation
- fb4ca38 add fbiville as a contributor for ideas (#638)
- e8a71cd add ali-ince as a contributor for userTesting (#637)
- 59fea88 add atomfrede as a contributor for ideas (#636)
- 1b52cf9 add katya-dovgalets as a contributor for code (#635)
- 6791e62 add corneil as a contributor for bug (#634)
- d141781 add marianozunino as a contributor for ideas (#633)
- fd4b41c add aalmiray as a contributor for code, plugin, ideas, mentoring (#632)
- a11f2fc add Dcanzano as a contributor for userTesting, bug (#631)
- 3b02732 add Hosch250 as a contributor for userTesting, bug (#630)
- 832f503 add injectives as a contributor for code, userTesting (#629)
- 1807f29 add SeanKilleen as a contributor for doc (#628)
- 22cf9b7 add ali-ince as a contributor for bug (#627)
- 1fadb5d add michael-simons as a contributor for maintenance (#626)
- 2062be5 add michael-simons as a contributor for code, doc (#625)
- 4aebc75 add meistermeier as a contributor for doc (#624)
- 99b9f60 add bsideup as a contributor for review (#623)
- e5e89ce add meistermeier as a contributor for code (#622)
- 897be21 Update local changelog.
🧹 Housekeeping
- 1a7b7b3 Bump neo4j-harness from 4.4.10 to 4.4.11 (#642)
- 91266e4 Bump error_prone_annotations from 2.12.1 to 2.15.0 (#643)
- 2af5eaa Bump byte-buddy.version from 1.12.14 to 1.12.16 (#644)
- 4e1bf2f Bump checker-qual from 3.24.0 to 3.25.0 (#641)
- 8ef853e Bump mockito.version from 4.7.0 to 4.8.0 (#639)
- c2b6c6f Bump quarkus-neo4j.version from 1.4.1 to 1.5.0
- a3ade49 Bump quarkus.version from 2.12.0.Final to 2.12.1.Final
- e783d4d Bump japicmp-maven-plugin from 0.15.7 to 0.16.0 (#617)
- dde32a3 Bump quarkus.version from 2.11.2.Final to 2.12.0.Final (#611)
🛠 Build
1.10.1
What's Changed
📝 Documentation
🧹 Housekeeping
- 95fdff1 Bump quarkus-neo4j.version from 1.4.0 to 1.4.1
- 3a2c08a Bump quarkus.version from 2.11.2.Final to 2.11.3.Final
- 0f8b5d8 Bump checkstyle from 10.3.2 to 10.3.3 (#615)
- 621db9e Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 (#614)
- 3a31f05 Bump byte-buddy.version from 1.12.13 to 1.12.14 (#613)
- d30cd1a Bump jreleaser-maven-plugin from 1.1.0 to 1.2.0 (#612)
1.10.0
What's Changed
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 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 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
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 and a list of predefined 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
🔄️ Refactorings
📝 Documentation
🧹 Housekeeping
Contributors
We'd like to thank the following people for their contributions:
1.9.2
What's Changed
🐛 Bug Fixes
- a99b33f Add missing type
property
to allowed index types.
🧹 Housekeeping
- 127996f Bump maven-javadoc-plugin from 3.4.0 to 3.4.1 (#600)
- 75191a9 Bump neo4j-harness from 4.4.9 to 4.4.10 (#601)
- 538ccd1 Bump maven-project-info-reports-plugin from 3.4.0 to 3.4.1 (#602)
- 8c6ad22 Bump mockito.version from 4.6.1 to 4.7.0 (#603)
- 123acdd Bump maven-site-plugin from 3.12.0 to 3.12.1 (#599)
- 2c91338 Bump byte-buddy.version from 1.12.12 to 1.12.13 (#598)
- 7ec3a03 Bump objenesis from 3.2 to 3.3 (#597)
- 2c5ebeb Bump quarkus.version from 2.11.1.Final to 2.11.2.Final (#596)
🛠 Build
- d736df7 Use
quarkus-extension-maven-plugin
instead ofquarkus-bootstrap-maven-plugin
.
1.9.1
What's Changed
🐛 Bug Fixes
🧹 Housekeeping
- c49486c Bump docker-maven-plugin from 0.40.1 to 0.40.2 (#594)
- d33e902 Bump junit-jupiter-causal-cluster-testcontainer-extension (#593)
- ea1619d Bump asciidoctorj from 2.5.4 to 2.5.5 (#592)
- 27f4f44 Bump junit-bom from 5.8.2 to 5.9.0 (#591)
- 4141884 Bump maven-resources-plugin from 3.2.0 to 3.3.0 (#590)
- de709fe Bump checkstyle from 10.3.1 to 10.3.2 (#589)
1.9.0
What's Changed
🚀 Features
- 3cb4c25 Add experimental Markdown extension. (#585)
- 1ab051c Add
:USE
command. (#583) - a83b60b Support well-known Neo4j environment variables. (#587)
🐛 Bug Fixes
- 7808fa5 Handle additional Neo4j server agent strings. (#588)
- 3564781 Adjust layout to commonly used one. (#582)
- f50b365 Fix encoding issue in dev ui.
- a5d7d92 Fix spelling. (#567)
🔄️ Refactorings
- 462cfba Avoid an unlock attempt if the lock isn’t locked. (#581)
- 9c26342 Deprecate
ac.simons.neo4j.migrations.core.Migration#getDescription
. (#584)
🧹 Housekeeping
- b68caee Bump quarkus-neo4j.version from 1.3.2 to 1.4.0
- 78a06f4 Bump quarkus.version from 2.11.0.Final to 2.11.1.Final
- d3dba4a Bump maven-project-info-reports-plugin from 3.3.0 to 3.4.0 (#568)
- b2f5b8a Bump maven-install-plugin from 3.0.0-M1 to 3.0.1 (#579)
- 0a7fbfa Bump spring-boot.version from 2.7.1 to 2.7.2 (#578)
- 1d6434f Bump maven-deploy-plugin from 3.0.0-M2 to 3.0.0 (#577)
- 330be58 Bump maven-assembly-plugin from 3.4.1 to 3.4.2 (#575)
- e76fb8c Bump neo4j-harness from 4.4.8 to 4.4.9 (#580)
- f404a07 Bump quarkus.version from 2.10.2.Final to 2.11.0.Final (#574)
- 129cebf Bump exec-maven-plugin from 3.0.0 to 3.1.0 (#570)
- 8c65341 Bump native-maven-plugin from 0.9.12 to 0.9.13 (#571)
- 9995d00 Bump sortpom-maven-plugin from 3.1.3 to 3.2.0 (#569)
Contributors
We'd like to thank the following people for their contributions:
1.8.3
1.8.2
What's Changed
🐛 Bug Fixes
🧹 Housekeeping
- 9d768f8 Bump quarkus-neo4j.version from 1.3.0 to 1.3.1
- 3edeca0 Bump quarkus.version from 2.10.1.Final to 2.10.2.Final (#552)
- b698497 Bump classgraph from 4.8.147 to 4.8.149 (#553)
- 9048202 Bump maven-assembly-plugin from 3.4.0 to 3.4.1 (#554)
Contributors
We'd like to thank the following people for their contributions:
1.8.1
What's Changed
🔄️ Refactorings
🧹 Housekeeping
- d795d6c Bump testcontainers.version from 1.17.2 to 1.17.3 (#547)
- 61811af Bump jreleaser-maven-plugin from 1.0.0 to 1.1.0 (#543)
- 2b10f8e Bump quarkus.version from 2.10.0.Final to 2.10.1.Final (#545)
- 20c41fd Bump jna from 5.12.0 to 5.12.1 (#548)
- 06f4e78 Bump checkstyle from 10.3 to 10.3.1 (#544)
- 4db301f Bump maven-assembly-plugin from 3.3.0 to 3.4.0 (#546)
🛠 Build
- 847c26f Add support for integration tests running on Apple silicon. (#538)
- 3da7550 Use a system property to configure a central Neo4j image to be used as default in integration tests. (#542)
- 3e25207 Completely exclude asciidoc extension from site plugin.
- 9d58c90 Install a Ruby version compatible with JRuby and Maven.
- d49d744 Add mavengem-wagon as extension to avoid site generation errors. (#541)
Contributors
We'd like to thank the following people for their contributions: