Skip to main content
This guide walks you through importing a Neo4j graph into TuringDB. The process uses APOC to export the Neo4j graph as JSONL, which TuringDB can load directly.

Prerequisites

  • A running or restorable Neo4j instance (version 4.x or 5.x) with the APOC plugin installed
  • A running TuringDB instance
APOC comes bundled with Neo4j Desktop. For server installs, follow the APOC installation guide.

Migrating from Neo4j 4.x

If your database was created with Neo4j 4.x, you need to migrate it to the 5.x format before exporting. Using neo4j-admin:
# Load your v4 dump
neo4j-admin database load --from-stdin neo4j --overwrite-destination=true < mydb.dump

# Migrate to v5 format
neo4j-admin database migrate neo4j --force-btree-indexes-to-range
Then start Neo4j 5.x and proceed with the export below.
1

Export from Neo4j with APOC

Connect to your Neo4j instance (via Neo4j Browser, cypher-shell, or any client) and run:
CALL apoc.export.json.all("output.json", {useTypes: true});
This writes the entire graph to output.json in Neo4j’s import directory (typically $NEO4J_HOME/import/). The file contains one JSON object per line — one for each node and one for each relationship.
Make sure Neo4j has write access to its import directory and that APOC’s configuration allows file export (apoc.export.file.enabled=true in apoc.conf).
2

Copy the file to TuringDB's data directory

TuringDB only reads external files from the data subdirectory of its working directory (set by --turing-dir, default $HOME/.turing).
cp $NEO4J_HOME/import/output.json ~/.turing/data/
3

Load the file into a new graph

LOAD JSONL 'output.json' AS mygraph
TuringDB creates a new graph named mygraph and populates it with all nodes and relationships from the file.
4

Set the graph as active and query it

cd mygraph

MATCH (n) RETURN n
Your Neo4j graph is now available in TuringDB as mygraph.

Verify the import

Use meta-queries to inspect what was imported:
CALL db.labels()
CALL db.edgeTypes()
CALL db.propertyTypes()