upgrading an old Neo4j database using Groovy
In a project I’m involved with there is still a very old Neo4j 1.0 database used. Now this database should be used with an up-to-date version of Neo4j (1.7.2 as of this writing).
Following Neo4j docs, upgrades are done incrementally with every x.y in-between version by starting up and shutting the DB. For upgrading, a config parameter
allow_store_upgrade=true must be set.
I’ve found manually downloading each intermediate version too boring and hacked a short groovy script helping with upgrading the datastore, see https://gist.github.com/3011606.
The script must be configured with the right database directory and for the desired target version of Neo4j uncomment the matching
@Grab annotation. So when going from 1.0 – 1.8 this script must be called 8 times, each time with the next subsequent
For those who wonder what the
@Grab annotation does: it accesses a maven repository, downloads the dependencies behinde the scene and adds them to the class path.
The upgrade itself is trivial, just fire up an EmbeddedGraphDatabase with
allow_store_upgrade=true and shut it down afterwards.