Data Modeler
Create, organize, synchronize, and export data models visually in Nexo SQL Studio.
Data Modeler
Database support
Database support does not imply identical features. Connections and SQL worksheets are the starting point; editing, DDL, modeling, transfers, administration and AI operations depend on the engine and workflow. Check the installed version and the relevant guide before relying on an advanced operation.
Supported databases and feature availability · Connection guides
Data Modeler opens .nexomodel workspace files as visual models. The model stores database object metadata, relationships, and diagram layout. Editing the file does not immediately change the database: use Apply changes to review the changes, then open the SQL or execute it.
Create and populate a model
Open an existing .nexomodel file or create a new Nexo Model. A new model starts with an Overview diagram.
- Choose Import to use a database connection and select supported objects, such as tables and views. The available object types depend on the database engine. Import can reverse-engineer multiple selected objects, including their columns, constraints, and indexes.
- Drag supported objects from Connections Explorer onto the canvas to add them. A model is linked to one database connection and its database or schema context, so add objects from that same source.
- Choose Create → Table to add a table to the model without creating it in the database. Select the table to add columns and edit its name and data types.
- Choose Create → Module to make a child diagram for a group of related tables. Use the table’s Move to Module action to place it in a module.
The object badges identify the kind of database object: T is a table, V is a view, and MV is a materialized view.
Navigate the canvas
- Cursor selects and moves objects. Hold the right mouse button and drag to pan through the model at any time, whatever tool is active.
- Hand pans by dragging. Ctrl/Shift-click to select objects while using this tool.
- Marquee selects multiple objects by dragging a selection box.
- To create a relationship, hover a column name until its + hint appears, then click the source column and the destination column in turn.
- Select a table, module, or relationship to inspect it. The inspector lets you review and edit model details, including column definitions and relationship properties.
Auto layout options
Choose the Auto layout toolbar button to preview a layout. Selecting a layout shows its description; it does not rearrange the diagram until you click Apply.
| Layout | Use it for |
|---|---|
| Optimal | Arrange related objects together with balanced spacing. Choose a direction: Down, Right, Up, or Left. |
| Grid | Create compact rows and columns for an overview. |
| Horizontal line | Place objects in one left-to-right row. |
| Vertical line | Place objects in one top-to-bottom column. |
The additional layout fields control:
- Spacing — Compact, Normal, or Wide gaps between objects.
- Arrange — Active diagram (non-hidden objects) rearranges the visible objects in the current diagram. Selected objects rearranges only the current selection and leaves other objects in place.
- Direction (Optimal) — Controls which way the relationship-aware Optimal layout flows. It does not affect Grid or line layouts.
Use the layout dialog’s Cancel button to close it without applying a layout.
Model relationships and metadata
Relationships connect source and destination columns and can be edited in the inspector. Set the relationship name, column pairs, description, color, and parent-to-child cardinality: 1:N, 1:1, N:1, or N:N. A relationship also records a foreign-key constraint in the model.
Table metadata includes columns and database details such as constraints and indexes. Changes to names, columns, or relationships update the model document; the All changes saved indicator shows when the document is clean.
Import changes from the database
Import lists every object in the schema, with badges:
- New: in the database but not in the model yet.
- Modified: the database definition differs from the model copy. Hover the badge to see what differs.
- Removed: in the model but no longer in the database.
- In model: already up to date.
Filter by state, or choose Select all changes, then import. New objects are added, modified ones are replaced with the database definition, and removed ones are taken out of the model together with their relationships. Unchanged objects stay unchecked and are excluded from bulk selection. The database is not changed.
Apply model changes to the database
Apply changes compares the model with the linked database and lists each change by object, with badges for Create, Alter, Recreate and Drop. Collapse or expand object-type groups and use their checkboxes or Select all to select changes. Expand an object to see each change and its SQL. Objects with no applicable changes stay unchecked. Objects that only exist in the database are listed as Not in model and are never dropped.
Drops and recreates can lose data, so they start unselected. Turn on Include destructive changes to select them.
- Open SQL opens the selected changes as a SQL document, in the order they would run.
- Execute runs the selected statements after you confirm. A progress view shows percent complete, elapsed time, estimated time left, and the status of each statement. Stop ends the run after the current statement.
If a statement fails, the run stops and shows the error under that statement. On databases with transactional DDL, such as PostgreSQL and SQLite, every statement is rolled back. On Oracle and MySQL, DDL commits as it runs: statements that already ran stay applied, and the view shows which ones failed or did not run. Open remaining SQL opens what was not applied. After a run, the model rereads the objects that changed.
For a native model that is not linked to a database, the button reads Native DDL and opens the native table definitions as SQL.
Export a model
Choose Export to create an interactive HTML model or a printable PDF. Select which diagrams or modules to include, and optionally export only the selected object, module, or relationship. Each included module is placed on its own page in the PDF.
For building a SELECT statement from tables and columns, see Query Builder.