DataGrip 2022.2.2 Improves the Modify Object UI

This bug-fix update is focused on enhancing the new Modify Object UI. Before listing what we’ve improved, let us give you a bit more background info about how the new UI came about.

Why the new UI?

At some point it became clear that the whole Modify Object UI had to be rewritten from scratch. There were some usability issues, like expanding the UI, which we admit was not the best idea. However, the main reason was that with so many supported database engines, DataGrip just could not provide a powerful UI for objects in each of them. We could manually design the dialog for 3 or maybe 5 databases, but not for 25 of them.

In each database engine, objects have lots of specific attributes, and we would like our users to have the UI to see and edit those attributes. The only good approach here was to generate the UI on a metadata basis, so that whatever the object has inside would find its way to the UI. DataGrip didn’t explicitly know what controls the Modify dialog would be populated with, though. That is why we rewrote the dialog from scratch.

Issues with the new UI

The first version of the new UI, marked simply New UI, was released in March 2022, so our users had the opportunity to try it for the last 4 months and to share their feedback. The new UI became the default option in the 2022.2 EAP. Most of the feedback, though, came after the official release.

Not only was the dialog re-written, but lots of new functionality was added, as well. It is now possible to edit constraints and to set the collation for the table, and there’s now a basis for multiple object editing.

However, some of the scenarios became more difficult to manage, and others went missing completely. The most critical issues had to do with creating primary and foreign keys. We appreciate your feedback on these issues, which has helped us fix them in this 2022.2.2 release.

Improvements in DataGrip 2022.2.2

You can pin an editing pane and make it into a tab.

You can explore the object tree without opening the corresponding editing pane. In other words, you can choose whether a single-click or a double-click will let you edit the object.

The kebab menu next to the column name lets you create a primary key or a unique constraint. The action creates a new tab in the background.

Foreign keys and indexes can be created from the context menu of the column, pre-filling the column information:

Completion now works for the names of columns in indexes and primary and foreign keys:

The names of indexes and keys can be auto-generated. If you don’t like this behavior, you can turn it off by clicking on the ‘two circular arrows’ button next to the object’s name.

Buttons are now available for invoking code completion, which makes it not only more discoverable but also accessible for die-hard mouse fans. The down arrow invokes code completion to substitute a value, that is, to choose another type. The right arrow invokes code completion to add something to a value, such as an UNSIGNED attribute in MySQL.

The ‘New’ action now respects the context: If you invoke it from the ‘columns’ node, a column will be created. Or if you invoke it from the table name in the left-hand pane, a popup will appear to let you choose an object:

New and edited objects are highlighted in green and blue, respectively. Modified fields are in blue.

The changes to an object or field can be reverted:

Escape doesn’t close the window silently. Instead it will now warn you that you’re about to lose your changes.

There is one known issue: If you have previously selected ‘Don’t ask again’ in this dialog, unfortunately there is no way to bring this option back. We’re going to fix that in the next update.

If you run into any errors while executing a generated script, the dialog will not close after the execution attempt:

What’s next

The old Modify Object UI is still available and will not be dropped until we’ve eliminated all usability regressions in the new UI and until we’ve stopped receiving feedback that makes sound arguments for keeping the old version.

So, if you have more feedback on the new UI, please share it with us. We’re listening to the community, and we’re committed to providing you with a powerful tool to accomplish your everyday tasks.

Your DataGrip team