Skip to content

Commit e373b39

Browse files
add breaking changes/additions/deprecations on migration guide
1 parent 0f073a5 commit e373b39

File tree

1 file changed

+284
-0
lines changed

1 file changed

+284
-0
lines changed

modules/ROOT/pages/migration/index.adoc

Lines changed: 284 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,128 @@ npm update @neo4j/graphql
2020

2121
Here is a list of all the breaking changes from version 5.0.0 to 6.0.0.
2222

23+
=== Changed minimum Node.js version to 20.0.0
24+
25+
The minimum Node.js version required to run the Neo4j GraphQL Library is now 20.0.0.
26+
27+
=== Changed minimum Noo4j version to 5.0.0
28+
29+
The minimum Neo4j version required to run the Neo4j GraphQL Library is now 5.0.0.
30+
31+
=== Invalid filters in Aggregation filter inputs are being removed
32+
33+
GraphQL input types used for aggregation filters contained some filters that did not rely on aggregating functions.
34+
These filters were deprecated and are now removed from the generated schema.
35+
36+
To see the aggregating functions supported on filtering refer to xref:/queries-aggregations/filtering.adoc#_aggregation_filtering[Aggregation filtering],
37+
38+
39+
=== String aggregation filters that are not using _LENGTH are removed
40+
41+
String aggregations are computed using lengths, and the `_LENGTH` suffix is now required for all string aggregation filters.
42+
43+
[cols="1,1"]
44+
|===
45+
|Before | Now
46+
47+
a|
48+
[source, graphql, indent=0]
49+
----
50+
{
51+
movies(
52+
where: { actorsAggregate: { node: { name_AVERAGE_EQUAL: 1.5 } } }
53+
) {
54+
title
55+
}
56+
}
57+
58+
----
59+
a|
60+
[source, graphql, indent=0]
61+
----
62+
{
63+
movies(
64+
where: { actorsAggregate: { node: { name_AVERAGE_LENGTH_EQUAL: 1.5 } } }
65+
) {
66+
title
67+
}
68+
}
69+
70+
----
71+
|===
72+
73+
74+
75+
=== Removed the deprecated `options` argument from `assertIndexesAndConstraints`
76+
77+
The deprecated `options` argument from the `assertIndexesAndConstraints` utility has been removed.
78+
Database migrations are outside of the scope of the Neo4j GraphQL Library, and all indexes and constraints will have to be managed manually.
79+
80+
81+
=== Removed top-level argument that are not `update` from the top-level update
82+
83+
The top-level `update` mutation now only accepts the `update` argument.
84+
85+
The nested operation:
86+
87+
- create
88+
- create
89+
- delete
90+
- connect
91+
- disconnect
92+
- connectOrCreate
93+
94+
Are now moved into the `update` argument.
95+
96+
[cols="1,1"]
97+
|===
98+
|Before | Now
99+
100+
a|
101+
[source, graphql, indent=0]
102+
----
103+
mutation UpdatePeople {
104+
updatePeople(create: { movies: { node: { title: "The Good" } } }) {
105+
people {
106+
name
107+
}
108+
}
109+
}
110+
----
111+
a|
112+
[source, graphql, indent=0]
113+
----
114+
mutation UpdatePeople {
115+
updatePeople(create: { movies: { node: { title: "The Good" } } }) {
116+
people {
117+
name
118+
}
119+
}
120+
}
121+
----
122+
|===
123+
124+
125+
=== Changed the sort argument for interfaces Connection fields
126+
127+
The sort argument for interfaces Connection fields is now a list of non nullable element.
128+
129+
[cols="1,1"]
130+
|===
131+
|Before | Now
132+
133+
a|
134+
[source, graphql, indent=0]
135+
----
136+
productionsConnection(after: String, first: Int, sort: [ProductionSort], where: ProductionWhere): ProductionsConnection!
137+
----
138+
a|
139+
[source, graphql, indent=0]
140+
----
141+
productionsConnection(after: String, first: Int, sort: [ProductionSort!], where: ProductionWhere): ProductionsConnection!
142+
----
143+
|===
144+
23145
=== The deprecated `_NOT` filters are no longer supported
24146

25147
The following deprecated `NOT` filters are removed from the schema since they are no longer supported:
@@ -94,6 +216,88 @@ query {
94216
----
95217
|===
96218

219+
220+
=== The `excludeDeprecatedFields` setting in the Neo4jFeaturesSettings has been changed
221+
222+
As in version 6.x many of the deprecated fields have been removed, the `excludeDeprecatedFields` setting has been modified to reflect these changes.
223+
224+
The following fields have been removed:
225+
226+
227+
- `bookmark`
228+
- `negationFilters`
229+
- `arrayFilters`
230+
- `stringAggregation`
231+
- `aggregationFilters`
232+
- `nestedUpdateOperationsFields`
233+
234+
The following fields have been added:
235+
236+
237+
- `implicitEqualFilters`
238+
- `deprecatedOptionsArgument`
239+
- `directedArgument`
240+
241+
242+
== Additions
243+
244+
=== Added count_EQ as alternative to the deprecated count
245+
246+
The `count_EQ` filter is now available as an alternative to the deprecated `count` filter.
247+
248+
[cols="1,1"]
249+
|===
250+
|Before | Now
251+
252+
a|
253+
[source, graphql, indent=0]
254+
----
255+
{
256+
movies(where: { actorsAggregate: { count: 10 } }) {
257+
title
258+
}
259+
}
260+
----
261+
a|
262+
[source, graphql, indent=0]
263+
----
264+
{
265+
movies(where: { actorsAggregate: { count_EQ: 10 } }) {
266+
title
267+
}
268+
}
269+
----
270+
|===
271+
272+
=== Added the _EQ filter as alternative of the deprecated implicit equal filters
273+
274+
The `_EQ` filter is now available as an alternative to the deprecated implicit equal filters.
275+
276+
[cols="1,1"]
277+
|===
278+
|Before | Now
279+
280+
a|
281+
[source, graphql, indent=0]
282+
----
283+
{
284+
movies(where: { title: "The Matrix" }) {
285+
title
286+
}
287+
}
288+
289+
----
290+
a|
291+
[source, graphql, indent=0]
292+
----
293+
{
294+
movies(where: { title_EQ: "The Matrix" }) {
295+
title
296+
}
297+
}
298+
----
299+
|===
300+
97301
== Deprecations and warnings
98302

99303
=== `@node` will have to be explicitly defined
@@ -132,3 +336,83 @@ type Person @node {
132336
----
133337
|===
134338

339+
=== Deprecated the implicit equality filters
340+
341+
Previously when a field in a filter was present in filter without specifying the operator, it was treated as an equality filter.
342+
343+
This behavior is now deprecated and will be removed in the future. Please, use the `_EQ` filter.
344+
345+
[cols="1,1"]
346+
|===
347+
|Before | Now
348+
349+
a|
350+
[source, graphql, indent=0]
351+
----
352+
{
353+
movies(where: { title: "The Matrix" }) {
354+
title
355+
}
356+
}
357+
----
358+
a|
359+
[source, graphql, indent=0]
360+
----
361+
{
362+
movies(where: { title_EQ: "The Matrix" }) {
363+
title
364+
}
365+
}
366+
----
367+
|===
368+
369+
=== Deprecated pagination `options`` argument
370+
371+
The `options` argument in query and `@relationship` fields is deprecated and will be removed in the future. Use the `limit`, `offset` and `sort` arguments instead.
372+
373+
[cols="1,1"]
374+
|===
375+
|Before | Now
376+
377+
a|
378+
[source, graphql, indent=0]
379+
----
380+
{
381+
movies(options: { limit: 10, offset: 10, sort: { title: ASC } }) {
382+
title
383+
}
384+
}
385+
----
386+
a|
387+
[source, graphql, indent=0]
388+
----
389+
{
390+
movies(limit: 10, offset: 10, sort: { title: ASC }) {
391+
title
392+
}
393+
}
394+
----
395+
|===
396+
397+
398+
=== Deprecated `directed` argument in `@relationship` fields
399+
400+
The `directed` argument was used to change the query direction of the relationship field at the query time, for instance:
401+
402+
403+
[source, graphql, indent=0]
404+
----
405+
{
406+
movies {
407+
title
408+
actors(directed: false) {
409+
name
410+
}
411+
}
412+
}
413+
----
414+
415+
The `directed` argument in `@relationship` fields is deprecated and will be removed in the future.
416+
Please configure this using `queryDirection` and `direction` arguments of the `@relationship` directive.
417+
418+

0 commit comments

Comments
 (0)