Skip to content

Commit 606fc17

Browse files
fabiomarinijoschi
authored andcommitted
feat: upgraded Neo4j driver to v4
1 parent 2030a4a commit 606fc17

File tree

4 files changed

+18
-29
lines changed

4 files changed

+18
-29
lines changed

database/neo4j/neo4j.go

+13-26
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
"github.com/golang-migrate/migrate/v4/database"
1313
"github.com/golang-migrate/migrate/v4/database/multistmt"
1414
"github.com/hashicorp/go-multierror"
15-
"github.com/neo4j/neo4j-go-driver/neo4j"
15+
"github.com/neo4j/neo4j-go-driver/v4/neo4j"
1616
)
1717

1818
func init() {
@@ -91,6 +91,10 @@ func (n *Neo4j) Open(url string) (database.Driver, error) {
9191
}
9292
}
9393

94+
if encrypted {
95+
uri.Scheme += "+s"
96+
}
97+
9498
multiStatementMaxSize := DefaultMultiStatementMaxSize
9599
if s := uri.Query().Get("x-multi-statement-max-size"); s != "" {
96100
multiStatementMaxSize, err = strconv.Atoi(s)
@@ -101,9 +105,7 @@ func (n *Neo4j) Open(url string) (database.Driver, error) {
101105

102106
uri.RawQuery = ""
103107

104-
driver, err := neo4j.NewDriver(uri.String(), authToken, func(config *neo4j.Config) {
105-
config.Encrypted = encrypted
106-
})
108+
driver, err := neo4j.NewDriver(uri.String(), authToken, func(config *neo4j.Config) {})
107109
if err != nil {
108110
return nil, err
109111
}
@@ -136,10 +138,7 @@ func (n *Neo4j) Unlock() error {
136138
}
137139

138140
func (n *Neo4j) Run(migration io.Reader) (err error) {
139-
session, err := n.driver.Session(neo4j.AccessModeWrite)
140-
if err != nil {
141-
return err
142-
}
141+
session := n.driver.NewSession(neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite})
143142
defer func() {
144143
if cerr := session.Close(); cerr != nil {
145144
err = multierror.Append(err, cerr)
@@ -183,10 +182,7 @@ func (n *Neo4j) Run(migration io.Reader) (err error) {
183182
}
184183

185184
func (n *Neo4j) SetVersion(version int, dirty bool) (err error) {
186-
session, err := n.driver.Session(neo4j.AccessModeWrite)
187-
if err != nil {
188-
return err
189-
}
185+
session := n.driver.NewSession(neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite})
190186
defer func() {
191187
if cerr := session.Close(); cerr != nil {
192188
err = multierror.Append(err, cerr)
@@ -208,10 +204,7 @@ type MigrationRecord struct {
208204
}
209205

210206
func (n *Neo4j) Version() (version int, dirty bool, err error) {
211-
session, err := n.driver.Session(neo4j.AccessModeRead)
212-
if err != nil {
213-
return database.NilVersion, false, err
214-
}
207+
session := n.driver.NewSession(neo4j.SessionConfig{AccessMode: neo4j.AccessModeRead})
215208
defer func() {
216209
if cerr := session.Close(); cerr != nil {
217210
err = multierror.Append(err, cerr)
@@ -256,10 +249,7 @@ ORDER BY COALESCE(sm.ts, datetime({year: 0})) DESC, sm.version DESC LIMIT 1`,
256249
}
257250

258251
func (n *Neo4j) Drop() (err error) {
259-
session, err := n.driver.Session(neo4j.AccessModeWrite)
260-
if err != nil {
261-
return err
262-
}
252+
session := n.driver.NewSession(neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite})
263253
defer func() {
264254
if cerr := session.Close(); cerr != nil {
265255
err = multierror.Append(err, cerr)
@@ -273,10 +263,7 @@ func (n *Neo4j) Drop() (err error) {
273263
}
274264

275265
func (n *Neo4j) ensureVersionConstraint() (err error) {
276-
session, err := n.driver.Session(neo4j.AccessModeWrite)
277-
if err != nil {
278-
return err
279-
}
266+
session := n.driver.NewSession(neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite})
280267
defer func() {
281268
if cerr := session.Close(); cerr != nil {
282269
err = multierror.Append(err, cerr)
@@ -289,8 +276,8 @@ func (n *Neo4j) ensureVersionConstraint() (err error) {
289276
if err != nil {
290277
return err
291278
}
292-
if len(res) > 0 && len(res[0].Values()) > 0 {
293-
if v, ok := res[0].Values()[0].(string); ok {
279+
if len(res) > 0 && len(res[0].Values) > 0 {
280+
if v, ok := res[0].Values[0].(string); ok {
294281
neo4jVersion = semver.Major("v" + v)
295282
}
296283
}

database/neo4j/neo4j_test.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"testing"
99

1010
"github.com/dhui/dktest"
11-
"github.com/neo4j/neo4j-go-driver/neo4j"
11+
"github.com/neo4j/neo4j-go-driver/v4/neo4j"
1212

1313
"github.com/golang-migrate/migrate/v4"
1414
dt "github.com/golang-migrate/migrate/v4/database/testing"
@@ -43,7 +43,6 @@ func isReady(ctx context.Context, c dktest.ContainerInfo) bool {
4343
neoConnectionString(ip, port),
4444
neo4j.BasicAuth("neo4j", "migratetest", ""),
4545
func(config *neo4j.Config) {
46-
config.Encrypted = false
4746
})
4847
if err != nil {
4948
return false
@@ -53,7 +52,7 @@ func isReady(ctx context.Context, c dktest.ContainerInfo) bool {
5352
log.Println("close error:", err)
5453
}
5554
}()
56-
session, err := driver.Session(neo4j.AccessModeRead)
55+
session := driver.NewSession(neo4j.SessionConfig{AccessMode: neo4j.AccessModeRead})
5756
if err != nil {
5857
return false
5958
}

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ require (
5656
github.com/moby/docker-image-spec v1.3.1 // indirect
5757
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect
5858
github.com/modern-go/reflect2 v1.0.2 // indirect
59+
github.com/neo4j/neo4j-go-driver/v5 v5.25.0 // indirect
5960
github.com/rogpeppe/go-internal v1.12.0 // indirect
6061
github.com/stretchr/objx v0.5.2 // indirect
6162
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect

go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,8 @@ github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8 h1:P48LjvUQpT
495495
github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA=
496496
github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba h1:fhFP5RliM2HW/8XdcO5QngSfFli9GcRIpMXvypTQt6E=
497497
github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba/go.mod h1:ncO5VaFWh0Nrt+4KT4mOZboaczBZcLuHrG+/sUeP8gI=
498+
github.com/neo4j/neo4j-go-driver/v5 v5.25.0 h1:esvltei4tilM6hpG8m3THbbCN2872P39fzzCDaHOQkk=
499+
github.com/neo4j/neo4j-go-driver/v5 v5.25.0/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k=
498500
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
499501
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
500502
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=

0 commit comments

Comments
 (0)