Draw an existing Neo4j database as a graph model
toro4n can draw the structure of a database you already have, without connecting to it: you run two queries yourself, paste the results, and the model appears, laid out and ready to edit. Only the structure is read, never the data.
Step by step
- Open File → Import… and choose the source Neo4j database.
-
Copy the first query with its Copy button, run it in Neo4j Browser, and
paste the result into the first field. Do the same with the second query. There are two
because Neo4j doesn't allow
SHOW CONSTRAINTStogether with anything else. - Choose a name for the layer the import goes into, and import.
Instead of pasting, you can choose or drop the exported result files. toro4n recognizes the result wherever it's pasted from: Neo4j Browser's JSON export, the HTTP API's answer, or cypher-shell's output. Both results are needed; a single dropped result opens Import so you can add the other.
What the queries read
Both queries are read-only. The first reads the labels, the properties with their types, and the relationship types with their start and end labels, through Neo4j's own schema procedures. The second reads the constraints. No query touches the data, and toro4n never connects to the database, so this works with any Neo4j installation, including ones with no network access from the outside.
What is drawn
- One node per label combination, with the labels written the Neo4j way.
- Properties with their Neo4j types, mapped to the type dropdown. A property that has several types in the database gets no type.
- Relationships between the label combinations that the relationships themselves connect, not every pair the schema procedure over-reports.
- Unique and required from the constraints: a uniqueness constraint on one property makes it unique, an existence or key constraint makes it required, and a key constraint on a single property makes it both. A constraint on a label applies to every node with that label. A constraint over several properties makes nothing unique.
- Unique keys come first in each node, then the rest alphabetically; nodes without relationships are placed in a row under the rest.
The result goes through the same checks as a file, and then the ordinary import: the merge question if labels clash with the open model, and a layer of its own. Tested against real results from Neo4j 2026.09 and 5.26.
Going the other way
Once you've changed the model, export it as Cypher: a script with the constraints and CREATE statements for Neo4j.
Questions
Does toro4n connect to my Neo4j database?
No. You run two read-only queries yourself in Neo4j Browser and paste the results into toro4n. toro4n never opens a connection to the database and never sees its data, only its structure.
Does it read the data in the database?
No. The queries return labels, property types, relationship types, and constraints. Property values are never read.