Skip to content

Schema diagram

The console Schema tab renders a live diagram of every user table in your database — columns + types + primary keys, plus arrows between foreign-key references.

The diagram is generated directly from sqlite_master and PRAGMA table_info / PRAGMA foreign_key_list; there is no separate schema definition to maintain. Adding a column and refreshing updates the diagram.

  • One card per table. Header has the table name and a column count badge. Body lists every column with its declared type and a key icon for primary keys.
  • Curved arrows connect each foreign-key column to the referenced column in the parent table. Hovering a table dims unrelated relationships so you can read complex graphs.
  • Relationships list below the diagram — same edges as a flat text list (orders.customer_id → customers.id), handy when you want to copy them.
  • No drag-to-rearrange. Tables auto-layout in a 3-column grid; position isn’t saved per user.
  • No table filter. All user tables render. If you have 50+ tables and the page feels heavy, file an issue.
  • No SQL view from the diagram. Click into the Tables tab for CREATE TABLE statements and row data.

Same data is available programmatically:

GET /api/namespaces/:ns/databases/:db/schema-graph

Response shape:

{
"tables": [
{
"name": "customers",
"columns": [
{ "name": "id", "type": "INTEGER", "pk": true, "notNull": true },
{ "name": "email", "type": "TEXT", "pk": false, "notNull": true }
]
}
],
"foreignKeys": [
{ "fromTable": "orders", "fromColumn": "customer_id",
"toTable": "customers", "toColumn": "id" }
]
}

Read access required. The endpoint is cheap — runs the same PRAGMAs the SQLite shell does — so feel free to poll it from your own tooling.