Visual Schema Designer
Create and alter tables, columns, indexes, and foreign keys visually — RaisDB generates the correct DDL.
🔒 Pro feature. Table creation and alterations are gated to Pro. Preview DDL is free.
Entry points
New table
Right-click on a schema / database → New Table.
Edit existing table
Right-click on a table → Edit Table Structure (or click the pencil-ruler icon in the data viewer toolbar, or double-click an ER-diagram node).
Columns tab
A drag-and-drop list of columns. Per-column controls:
| Field | Notes |
|---|---|
| Type | Engine-aware picker — only valid types for the selected engine |
| Length | Shown where the type accepts a length |
| NULL / PK / UQ / AI | Toggleable per row |
| Default | For non-auto-increment columns |
| Charset / Collation | MySQL family only |
| Comment | Per-column |
Reordering
Drag-to-reorder works only when creating a new table, or on the MySQL dialect (it's the only family that supports column ordering via ALTER ... MODIFY COLUMN). Other engines ignore reorders during alter.
Indexes tab
Add primary / unique / plain / composite. Pick columns from a dropdown; column order matters for composite indexes.
Foreign keys tab
Pick target table + column from dropdowns. Choose RESTRICT / CASCADE / SET NULL / NO ACTION for ON DELETE / ON UPDATE where the target engine supports it.
DDL preview
A read-only Monaco SQL pane shows the DDL that will run. It's regenerated live as you change anything in the design.
Where the DDL comes from
Every engine delegates to sqlproc::ddl::create_table / alter_table with its DialectSpec preset. So the SQL is dialect-correct without you selecting a dialect.
Save
New table
Calls db_create_table — runs the previewed DDL.
Existing table
Computes a TableDiff and runs db_alter_table. Multi-statement alters (e.g. SQLite's rebuild-and-copy flow) are handled automatically.
Other
Charset / Collation / Engine / Comment (table-level)
A settings popover exposes these at the table level on MySQL family.
Enum value lists
Not supported in the designer — the TableSettings popover does not expose per-column enum values. Define enums as text + a check or via SQL if you need them.