TuringDB home pagelight logodark logo
  • Discord
  • GitHub
  • Website
TuringDB

Get Started

  • Introduction
  • Get Started
  • Claude Code Skill
  • Commands

Concepts

  • Overview
  • A Columnar Graph Database
  • Versioning System
  • The DataPart System
  • Zero-Locking Architecture
  • Snapshots Isolation

Benchmarks

  • Results Summary
  • Technical Report

Query Language

  • Query Language
  • CheatSheet

Importing data

  • JSONL
  • CSV
  • Neo4j
  • GML
  • Parquet

Graph Development

  • Create Graph
  • Load Graph
  • Load External data
  • Create a Change
  • List Changes
  • Create Nodes and Edges
  • Update Properties
  • Submit a Change
  • Time Travel
  • Graph Examples

Vector Search

  • Vector Search

Graph Algorithms

  • Shortest Path

Tutorials

  • Example Notebooks

Python SDK

  • Get Started
  • Reference

Troubleshooting

  • Troubleshooting

  • Prerequisites
  • Migrating from Neo4j 4.x
  • Verify the import
Importing data

Migrate from Neo4j

Export a Neo4j graph and import it into TuringDB

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

  • Cypher
  • Python SDK
LOAD JSONL 'output.json' AS mygraph
from turingdb import TuringDB

client = TuringDB(host="http://localhost:6666")
client.query("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

  • Cypher
  • Python SDK
cd mygraph

MATCH (n) RETURN n
client.set_graph("mygraph")

df = client.query("MATCH (n) RETURN n")
print(df)

Your Neo4j graph is now available in TuringDB as mygraph.

​
Verify the import

Use meta-queries to inspect what was imported:

  • Cypher
  • Python SDK
CALL db.labels()
CALL db.edgeTypes()
CALL db.propertyTypes()
print(client.query("CALL db.labels()"))
print(client.query("CALL db.edgeTypes()"))
print(client.query("CALL db.propertyTypes()"))
CSVGML
githublinkedinyoutubediscord