golang-migrate / migrate

Database migrations. CLI and Golang library.
Other
14.87k stars 1.37k forks source link

Update neo4j driver - new driver is pure Golang #461

Open davisford opened 3 years ago

davisford commented 3 years ago

Is your feature request related to a problem? Please describe. Current driver in golang is v1.7.4

Newest driver from neo4j is v1.8.3

As of version 1.8.0 the driver was re-written entirely in Go, whereas the older drivers were a Go wrapper around their seabolt C driver. This would bring the driver up to the latest including support for new protocols that are implemented in Neo4j 4.x, add bugfixes, improvements, as well as the ability to drop the C binary and Go wrapper.

Describe the solution you'd like PR that updates golang driver to latest with go mod tidy and tests still passing.

Describe alternatives you've considered None

Additional context One of the issues we're seeing with migrate + neo4j is failure in concurrent situations. We deploy our containers in Kubernetes with an init container that runs the migrations. Unfortunately, the current neo4j migrate implementation does not support concurrency, and if you run two identical migrations concurrently it fails miserably.

I'm hopeful that with the newer driver, this will be improved as the bolt protocol itself has graduated to new versions with better support.

davisford commented 3 years ago

If you'll accept a PR for this, and we can get it pushed through quickly let me know and I'll be happy to try to provide one.

dhui commented 3 years ago

We're using v1.8.1 which is written in pure Go. Feel free to update to v1.8.3

fbiville commented 2 years ago

Hello, Neo4j Go driver author here, I just opened https://github.com/golang-migrate/migrate/pull/715 FYI