Changelog

History - Undo and Redo

We’ve rolled out Undo and Redo support to improve your database diagram editing experience. Effortlessly prototype and rollback changes. β€” enjoy! 😎

  1. Undo: Made an unintentional change? Simply use Cmd/Ctrl + Z to revert your last action, whether it’s moving a table, editing a column or removing a relation.

  2. Redo: Undid something and changed your mind? Cmd/Ctrl + Shift + Z will bring it right back!

🌟 Improvements and Fixes

  • Highlight selected column in sidebar and in canvas

  • Bring selected table to front in canvas

  • Improved visual display of active table in sidebar

  • Fixed occasional positioning issue on table resize

  • Fixed issue with incorrect index data displayed on canvas when a column is unselected from a composite index

More keyboard shortcuts

Added some new keyboard shortcuts this release:

  • Add column to last table

    • MacOS: Meta + Enter (With no table selected)

    • Windows: Control + Enter (With no table selected)

  • Add index to last table

    • MacOS: Meta + ' (With no table selected)

    • Windows: Control + ' (With no table selected)

  • Add index to selected table

    • MacOS: Meta + ' (With table selected)

    • Windows: Control + ' (With table selected)

  • Toggle sidebar

    • MacOS: Meta + \

    • Windows: Control + \

  • Save

    • MacOS: Meta + s

    • Windows: Control + s

Visit the keyboard shortcuts documentation page for a full list of shortcuts.

🌟 Improvements and Fixes

  • Fix importer bug when handling statements with 'USING BTREE'

  • Visual enhancements for tooltips in canvas

Command palette

This one's for the pro users - we're introducing the command palette to supercharge your editing workflow. Here’s what’s new:

  • Quick Access to Contextual Actions: No more hunting around for buttons or fields. Hit Cmd + / (or Ctrl + /) to instantly bring up the palette with suggested actions, or search for any action you need.

  • Lightning-Fast Navigation: Search to locate and jump to any table or column, both in the sidebar or on the main canvas.

  • Fuzzy Search: Don’t worry about exact matches – the palette is smart enough to figure out what you mean, even if your spelling is off.

  • More Commands Coming: We've included all the essential actions in this first release, but we're just getting started. Let us know if you have any suggestions for useful ones to add!

🌟 Improvements and Fixes

  • Improved behaviours for lasso and multi-select modes

Locate / Jump to table

A small QoL improvement to navigating the canvas - you can now quickly locate tables in the canvas from the left panel.

🌟 Improvements and Fixes

  • Button to collapse any expanded tables on the left panel

  • Improved handling of geometry datatypes

  • Added geography datatype for all schemas

  • Fixed export issue with subset of datatypes

Export and Import JSON

New supported format, export and import database schema to/from JSON. The JSON object contains details of every table, column, index and relationships, useful for recreating your DB schema via an import, or for tracking a snapshot of your DB schema in git.

🌟 Improvements and Fixes

  • UX refresh of the import modal to better show the multiple steps

  • Show DBMS/database type in diagram listing

Speed boosts

We’ve turbocharged diagram load and save speed with performance tweaks across the board. Every diagram should feel quicker to load & save. Even more so for large diagrams with complex relations - They’ll load in 1/10th (or less) the time compared to what it was before!

Improved schema importer for all DBMS

We've reworked the DDL/schema importer, which provides major improvements in parsing PgSQL and SQLSrv DDL syntaxes. Some other notable improvements in the importer:

  • Parses foreign key constraint DDL statements to import relationships between table columns, and can infer their cardinality

  • Parses and imports enum values

  • Improved algorithm for auto-layout of tables post-import

🌟 Improvements and Fixes

  • Fix issue with diagram ownership and view count when cloning templates.

  • Improve routing logic for relationship lines in canvas editor v2, includes scenario where a column has multiple relationships

  • Fix issue with table comment showing when empty

  • Fix issue with missing relationship port when adding new column

Enum values

Added support for defining enum values for enum data types. Also updated the exporter to include these enum values for all export formats.

🌟 Improvements and Fixes

  • Show icon on hover columns, to make it clearer visually that columns can be reordered by dragging

  • Revamped tooltips in canvas editor v2 to trigger on click instead of hover

  • Visual update of the column attribute tooltip, with a more succinct layout, and to show the new enum values

Duplicate tables

Added the ability to duplicate tables within the schema editor. This feature allows users to quickly create copies of existing tables, including their column and indexes along with all their attributes. A straightforward addition, but should speed up the process of designing schemas, especially when tables share similar structures.

🌟 Improvements and Fixes

  • Infrastructure updates. Page loads are noticeably quicker across the board. Also huge improvement in time to generate the preview images in the diagram cards on the dashboard

Canvas editor v2

Happy New Year 2024! We've been working on a new version of our canvas editor, the first major update to the canvas since launch. While it looks and feels the same as the current editor, under the hoods everything have been optimised for snappier performance and modularity for implementing next iteration of canvas QoL features.

The performance gains brings about huge improvement to the diagramming experience, and are even more apparent for larger diagrams of 50 tables or more. We've measured 9x to 12x reduction in canvas load time, and more importantly actions are snappier and more responsive when editing the diagram and moving things around.

Some new features that are immediately available with the new canvas:

  1. Table resizing

    • Users can now adjust table sizes for better layout customisation.

  2. Snap to grid

    • For more precise alignment of elements on the canvas.

  3. New lasso tool

    • For bulk selecting tables, and performing actions on multiple tables (e.g. repositioning) as a group

Additionally, these features are upcoming soon on the new canvas editor

  • Custom path of relationship lines between tables

  • Search

  • Jump to table

  • ... and more

This new canvas is being gradually rolled out over January, would love to hear of any feedback from using it.

Maintenance release

🌟 Improvements and Fixes

  • Fix issue with text selection in inputs in the left panel

  • Fix issue with Laravel migration export when there's a colon in default val

  • Fix issue with all exports, where column defaults were not being generated when they have a value of 0

Guest access

Users can now invite people external to their team as guests, providing them with view access to individual database diagrams. This is especially useful for sharing private diagrams securely with temporary contractors, auditors, or stakeholders outside the team.

🌟 Improvements and Fixes

  • Fixed issue when inviting team members or groups without also inviting a guest

  • Fixed a bug where the diagram edit modal was not showing on the dashboard/diagram listing page

  • Fixed the slow load time of the "Members & Groups" page

User Groups

Following the release of the revamped diagram permissions, we've added User Groups, which would allow easier bulk assignment of diagram permissions to a common group of users. We've also added a config so that you can define default group(s) that will be automatically assigned for each new diagrams.

Refer to the docs on User Groups to learn more.

🌟 Improvements and Fixes

  • Allow length to be specified when setting default column datatype, eg: CHAR(36)

Diagram-level access control

We have deployed a major revamp of diagram permissions. Previously, every team member had access to all diagrams in the team. The admin could determine whether it was view-only access (e.g., observers) or full access (e.g., editors).

With today's release, you can now configure access permissions on a per-diagram and per-user basis. Any user can be granted view-only access, edit access, or admin access to individual diagrams. This new feature provides even greater flexibility in managing data access, particularly for larger teams.

For more information on diagram-level permissions, please refer to the additional documentation available here.

🌟 Improvements and Fixes

  • Fix exporter handling of default values with keywords

  • Fix exporter generating non-valid syntax when columns have auto-increments attribute

Sorting and improved loading time for diagrams listing page

The diagrams index page is one of the most frequently used pages but has not received much attention since its inception. As teams are now creating even more diagrams, it is becoming increasingly challenging to browse and locate the desired diagram. The slow page load speed exacerbates this issue.

This week, we have added sorting options to address this. Diagrams can now be sorted by their creation date, updated date (the default), or alphabetically. Moreover, we have significantly improved the page load speed. We identified and resolved two main bottlenecks that were causing this slowness:

  1. Presigned urls for the diagram images were loaded sequentially, and these were performed in sync with the main diagram listing query.

  2. We had a N+1 query issue that had snuck into the main query

  3. We were needlessly loading the entire diagram schema for each diagram

Overall, users should notice a considerable improvement in the page's performance with this update.

Autosave

Finally, a long-awaited feature enabled by our new backend rebuild has arrived. We occasionally hear painful stories of users losing their work due to sudden interruptions or simply forgetting to hit the save button. Autosave does not completely prevent data loss, but it effectively minimizes any lost effort by autosaving at 5-minute intervals.

🌟 Improvements and Fixes

  • Importer to parse column comment and column datatype params (MySQL)

  • Set a default table name if it's empty

  • Fixed missing length param for VARCHAR datatype (SQL Server)

  • Fixed incorrect default length for VARCHAR and CHAR datatypes