Undo & Redo
Ainecto tracks every schema change so you can step backward and forward through your editing history. Undo reverses the last action; redo re-applies it.
Controls
| Action | Keyboard | Toolbar |
|---|---|---|
| Undo | Ctrl+Z (Cmd+Z on macOS) | Undo button (left arrow) |
| Redo | Ctrl+Shift+Z or Ctrl+Y (Cmd+Shift+Z on macOS) | Redo button (right arrow) |
Both keyboard shortcuts and toolbar buttons work identically. The toolbar buttons are grayed out when there is nothing to undo or redo.
What can be undone
The undo/redo system covers all schema-editing operations:
| Category | Operations |
|---|---|
| Tables | Create, delete, rename, change schema/alias/note/header color |
| Columns | Add, remove, reorder, rename, change type/nullable/default/PK/note |
| Relationships | Create, delete, change columns/type/ON DELETE/ON UPDATE |
| Enums | Create, delete, rename, add/remove/rename values |
| Table Groups | Create, delete, rename, change color, add/remove tables |
UUID preservation
When you undo a deletion, the restored entity keeps its original UUID. This is important because:
- Relationships are UUID-based — a table's foreign keys reference specific column UUIDs. If the UUID changed on undo, all related refs would break.
- Collaboration stays consistent — other users sharing the diagram see the same entity, not a new copy.
- Version history stays aligned — snapshots reference UUIDs, so restoring the original UUID keeps the history coherent.
Relationship auto-restore
Deleting a table also removes all relationships connected to it. When you undo the table deletion:
- The table is restored with its original UUID
- All columns are restored with their original UUIDs
- All foreign keys that referenced this table are automatically re-created
This means a single Ctrl+Z fully reverses a table deletion — you do not need to manually re-create the relationships.
Undo stack behavior
- The undo stack is per diagram tab — each tab maintains its own independent history.
- The stack resets when you close the tab or reload the page.
- Making a new change after undoing clears the redo stack (standard undo/redo behavior).
Tips
- Undo is not version history — undo tracks in-session edits. For persistent snapshots you can restore later, use Version History.
- Safe to experiment — with undo available, you can try structural changes (splitting a table, reorganizing columns) and revert instantly if the result is not what you expected.
- Bulk operations — operations that affect multiple entities (e.g., deleting a table with refs) are undone as a single step.