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.


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