3
votes

I am in the process of migrating an existing Spring Data Neo4j 3 application (with Neo4j 2.x) to Spring Data Neo4j 4.1 with Neo4j 3.0.

The actual migration is done, but the application now fails to start with

org.neo4j.kernel.impl.storemigration.UpgradeNotAllowedByConfigurationException: Failed to start Neo4j with an older data store version. To enable automatic upgrade, please set configuration parameter "dbms.allow_format_migration=true"

I actually know this message from previous upgrades, where I used to configure this in my neo4j.properties that I manually loaded when using a GraphDatabaseFactory to create the embedded DB.

With SDN 4 however, this is no longer required/possible. As specified in the documentation, I now only have:

@Bean
public Configuration getConfiguration()
{
    String uri = getDatabaseUri();
    Configuration config = new org.neo4j.ogm.config.Configuration();
    config.set("dbms.allow_format_migration", "true"); // Allow upgrade of neo4j version
    config.driverConfiguration()
            .setDriverClassName("org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver")
            .setURI(uri);
    return config;
}

This looks like one can set additional configuration, but this is without effect. I've also tried to place a neo4j.conf in the (embedded) DB folder with this option set, without success.

How does one actually configure embedded instances now?

1

1 Answers

3
votes

At the moment, this is not possible, and there is an issue open for it: https://github.com/neo4j/neo4j-ogm/issues/151

In the interim, please upgrade your Neo4j instance outside of SDN