Inspired by yesterdays Graph meetup on the new features of Neo4J I decided to bite the bullet and switch our current development for the Historiana project to the new beta Neo4J 3.1.

Any moment is the right moment right for actions like that 😉

But considering that currently we are finalising the UI and UX design and are modelling the new Graph parts it actually is a good moment before we start coding and fleshing out Cypher queries like there is no tomorrow. When we are ready with our internal beta probably Neo is moving out of beta and into release.

The new Historiana version is a major redesign and integrates various sub-projects moving it into production is probably something which will be done by running old and new side to side and switch over when everyone agrees its time. So switching Neo versions now is ok, we won’t touch the online version any time soon.

The Historiana development is done in a Virtual machine running a similar environment as online. Going beta on development means we need to replace the current 3.0.6 server somehow with the beta. Online we like to maintain the server via apt-get and we have good experiences with automatic upgrades of the Neo releases.

When you look online at the beta download page you will be tempted to download a package for your OS and install it manually. But there is an alternative; when you installed a version via apt-get earlier conform the instructions on the Debian packages page its easier to go beta via the same route.

Just add the beta-repo and install the specific version you want:

# add the beta-repo:
echo 'deb testing/' | sudo tee -a /etc/apt/sources.list.d/neo4j.list

# get the updates:
sudo apt-get update
# list all versions available
apt-cache madison neo4j

The list will give you an overview of all versions available;



We then install the most current version by specifying the exact version:

# it is a good idea to shutdown the current Neo4J
service neo4j stop

# then install the current BETA1
sudo apt-get install neo4j=3.1.0.M11.BETA1

During the install you will be asked what to do with the current configuration; overwrite it by the one in the new package or keep the old one. I think its best to “overwrite”; the old version will be available in a copy anyway and this way you know for sure that you will have all the recent options listed in the configuration file. This file tends to change quite a bit with every release 😉

Once its installed make sure the option <pre>dbms.allow_format_migration=true</pre> is enabled and start the new version <pre>service neo4j start</pre>. The new Neo4J will upgrade the database to the new format for you and once done the console will be available at :7474

Normally that is; instead of that I was greeted by this less-than-enthousiastic error :



Although I assumed it migrated the existing database login I did try the default neo4j/neo4j as well only to see the same error. The console gave a very insightful error:




localhost eh? Well nice try but that won’t work; the server is in a VM; not on localhost…

Effortless I opened /etc/neo4j/neo4j.conf and started uncommenting the lines to enable the network interface and changing addresses to the wildcard address where I thought it would be applicable.

Stop / Start / Reload and :


Well at least it changed localhost to but still no access.. Weird.

On a closer look there are some new options,  at least the “advertised_address” looks unfamiliar and I blindly enabled it with as an address. Turns out that is a no-no and it really should be the real ip of the interface in order to work. For the other settings an wildcard addreess of does work. Thus after changing the config to:

< #dbms.connectors.default_advertised_address=localhost
> dbms.connectors.default_advertised_address=

Of course this is an issue you would never have if you ran Neo on your local machine instead of a VM but finally I could login without any trouble..

So excuse, I am off to the console to play^h^h^h^h get insight in the new 3.1 beta features 🙂