2015-03-13 113 views
0

我使用Neo4j的2.2M02導入工具創建了一個大圖。
現在我想在2.2RC01的嵌入式版本中使用相同的數據庫。我在初始化數據庫時遇到以下Java錯誤:Neo4j商店升級錯誤

Exception in thread "main" java.lang.RuntimeException: Error starting org.neo4j.kernel.EmbeddedGraphDatabase, D:\Neo4j\data\test3.db 
    at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:331) 
    at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:59) 
    at org.neo4j.graphdb.factory.GraphDatabaseFactory.newDatabase(GraphDatabaseFactory.java:103) 
    at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:90) 
    at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:176) 
    at RCNeo4j.initDB(RCNeo4j.java:419) 
    at RCNeo4j.main(RCNeo4j.java:46) 
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component '[email protected]a0' was successfully initialized, but failed to start. Please see attached cause exception. 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:513) 
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 
    at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:326) 
    ... 6 more 
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component '[email protected]' was successfully initialized, but failed to start. Please see attached cause exception. 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:513) 
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 
    at org.neo4j.kernel.impl.transaction.state.DataSourceManager.start(DataSourceManager.java:117) 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:507) 
    ... 8 more 
Caused by: org.neo4j.kernel.impl.storemigration.StoreUpgrader$UnexpectedUpgradingStoreVersionException: 'neostore.nodestore.db' has a store version number that we cannot upgrade from. Expected 'v0.A.3' but file is version 'NodeStore v0.A.4'. 
    at org.neo4j.kernel.impl.storemigration.UpgradableDatabase.checkUpgradeable(UpgradableDatabase.java:88) 
    at org.neo4j.kernel.impl.storemigration.StoreMigrator.needsMigration(StoreMigrator.java:157) 
    at org.neo4j.kernel.impl.storemigration.StoreUpgrader.getParticipantsEagerToMigrate(StoreUpgrader.java:259) 
    at org.neo4j.kernel.impl.storemigration.StoreUpgrader.migrateIfNeeded(StoreUpgrader.java:134) 
    at org.neo4j.kernel.NeoStoreDataSource.upgradeStore(NeoStoreDataSource.java:562) 
    at org.neo4j.kernel.NeoStoreDataSource.start(NeoStoreDataSource.java:471) 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:507) 
    ... 11 more 

message.log在數據庫內似乎也沒有顯示任何異常。當我嘗試從2.1.7移動到RC01時,出現同樣的錯誤。

另外,在不同的說明中,我也想知道是否可以使用2.1.7中2.2M02生成的數據庫(類似於降級)。因爲我更喜歡有更穩定的版本來做一些分析。

+0

你將不得不重新導入你的文件,無論如何它應該足夠快。 – 2015-03-15 00:41:00

回答

1

Neo4j不提供里程碑版本之間的升級路徑,所以沒有直接的方法將2.2.0-M02升級到2.2.0-RC1。升級僅支持從一個穩定版本到另一個穩定版本。產品不支持降級。

但是有一種可行的方法。使用Michael的store-utils(https://github.com/jexp/store-utils)並使用類加載器分離更改代碼,使您正在閱讀的商店和正在編寫的商店使用具有不同Neo4j版本的單獨類加載器。