Что нового в DataGrip 2022.3

Встречайте DataGrip 2022.3! Это последнее большое обновление в этом году. Рассказываем, что вошло в этот релиз!

Общее

Поддержка Redis

В DataGrip появилась долгожданная поддержка Redis. Теперь можно подключаться к Redis Single Instance, просматривать значения ключей в окне просмотра данных, писать и выполнять запросы к Redis, пользуясь умными возможностями редактора.

Поддержка охватывает:

  • Подключение: Redis Single Instance.
  • Интроспекцию: интроспекция баз данных и ключей, включая возможность установить фильтр ключей по умолчанию для интроспектора.
  • Проводник баз данных: отдельные папки для ключей разных типов для Redis v6.0+ и одна папка со всеми ключами для более старых версий.
  • Выполнение запросов: JDBC-драйвер поддерживает выполнение большинства запросов.
  • Помощь в написании кода: подсветка синтаксиса, автодополнение ключевых слов и разрешение для баз данных и ключей.
  • Редактор объектов: переименование и удаление ключей.
  • Просмотрщик данных: фильтрация и подсветка JSON.

Подробнее

Переключение на новый интерфейс

В начале года мы открыли ограниченный доступ к новому интерфейсу во всех наших IDE, включая DataGrip.

Так мы познакомили первых пользователей с обновленным внешним видом наших продуктов. Мы постарались учесть отзывы, полученные за время раннего доступа, и готовы представить новый интерфейс всем.

Переключайтесь на него в меню Settings / Preferences | Appearance & Behavior | New UI Preview и делитесь своими впечатлениями!

Мы еще работаем над тем, чтобы максимально адаптировать интерфейс к особенностям DataGrip. Например, для создания конфигурации запуска — крайне важного действия в других IDE — в DataGrip, наверное, не нужна ярко-синяя кнопка. Если вы знаете, как можно улучшить панель инструментов, делитесь с нами своими идеями.

Новый способ синхронизации настроек

В этой версии мы представляем переработанное решение для синхронизации настроек IDE — это новый встроенный плагин. В настройках вы увидите новую опцию Settings Sync.

Раньше для синхронизации настроек использовались два разных плагина: IDE Settings Sync и Settings Repository.

Если вы пользовались IDE Settings Sync, ваши данные будут автоматически перенесены в новый плагин — дополнительно ничего делать не нужно.

Если вы пользуетесь Settings Repository, рекомендуем пока оставить все как есть, поскольку мы еще не завершили работу над миграцией. Как только все будет готово, вы получите уведомление в IDE.

Настройки хранятся в облаке, привязанном к вашему JetBrains-аккаунту. Если вы пользуетесь разными IDE на платформе IntelliJ с одного аккаунта, ваши настройки синхронизируются автоматически.

Известная проблема: раздел Database в настройках пока нельзя синхронизировать. Мы исправим это в одном из следующих обновлений версии 2022.3.

Обратите внимание, что источники данных к настройкам не относятся. Если вы хотите поделиться источниками данных, следуйте этой инструкции.

Виртуальные представления

Новая концепция позволяет использовать представления без их фактического создания в базе данных. По сути, это просто запрос, который извлекает результат и хранится внутри DataGrip.

 

Виртуальные представления видны в проводнике, и их можно запустить двойным щелчком мыши.

Обратите внимание, что в SQL-коде использовать виртуальные представления пока не получится.

Навигация по диаграммам

Теперь можно легко перемещаться по элементам на диаграммах. Работают все основные навигационные действия:

  • Открыть DDL: Ctrl/Cmd+B
  • Открыть данные: F4
  • Выбрать в проводнике базы данных: Alt/Opt+Shift+B
  • Изменить: Cmd/Ctrl+F6

Проводник баз данных

Быстрый фильтр

Еще одно долгожданное улучшение: при использовании быстрого поиска теперь можно фильтровать объекты. Все, что не соответствует фильтрам, будет скрыто.

Фильтрация схем на основе шаблона

Это изменение будет полезно для тех, кто использует много разных схем. Теперь можно выбирать базы данных или схемы для интроспекции на основе шаблонов регулярных выражений. Для этого нажмите Add Pattern и укажите шаблон регулярного выражения в новом узле. Базы данных и схемы будут выбраны по этому шаблону.

Добавление нескольких шаблонов будет объединять множества, а не создавать их пересечение.

Узел All теперь ведет себя иначе: схема по умолчанию не выбирается автоматически. Вам нужно выбрать между All schemas, Default schema или применить фильтр regexp.

Цвета для глобальных источников данных

Теперь, если глобальному источнику данных задать цвет, он тоже будет передаваться, когда вы делитесь источником данных.

Перетаскивание файлов скриптов

Чтобы накатить скрипт на любую схему, теперь можно просто перетащить файл скрипта из окна Files.

Редактор данных

Форматы типов данных «дата» и «время»

Теперь можно настроить, формат типов Datetime/timestamp, Time и Date в редакторе данных. Настройки вы найдете в разделе Database | Data Editor and Viewer.

 

Это работает для трех типов полей:
Datetime/timestamp (с часовым поясом или без него), Time (с часовым поясом или без него) и Date.

Новый экстрактор: условие WHERE

Выбранный диапазон значений теперь может быть извлечен как часть условия WHERE:

  • Значения в пределах одного столбца объединяются с помощью оператора OR.
  • Значения в пределах одной строки объединяются с помощью оператора AND.
  • Если значения извлекаются только из одного столбца, они объединяются в оператор IN.

Фильтрация SQL по нескольким значениям

Если вы выбираете несколько значений, действие Filter by теперь создает соответствующее условие.

Поле текстового поиска: заполнить выделением

Если при текстовом поиске нажать Ctrl/Cmd+F, в поле поиска автоматически подставится значение, на котором стоит курсор. Подобная логика давно применяется в текстовом редакторе.

Значения структур отображаются правильно Big Query

Значения структур теперь удобно просматривать: каждое вложенное значение отображается в виде отдельного столбца.

Работа с кодом

Превью результатов intention-действий

Теперь можно заранее посмотреть, как изменится запрос после применения предложения IDE. Превью появляется, когда открыт список доступных intention-действий и вы наводите курсор на одно из них.
Превью можно отключить, нажав F1/Ctrl+Q, когда открыт список intention-действий.

Копирование одной строки

Если в текстовом редакторе ничего не выделено, при нажатии Ctrl/Cmd+C DataGrip автоматически выделяет и копирует строку целиком. Так было и раньше, но мы изменили это действие, чтобы упростить вставку. Теперь содержимое буфера обмена вставляется отдельной строкой, а курсор остается на месте, как на видео:

Новый макет для генерации схем SQL: Per Object By Schema and Type

Мы добавили макет, который называется Per Object By Schema and Type. Если использовать его для генерации SQL для всей схемы, полученные файлы будут разложены по папкам в соответствии с типом объекта (таблица, представление и т.п.).

Исправления

  • DBE-6156: Oracle теперь поддерживается SET ROW.
  • DBE-12766: SQL Server теперь поддерживается $PARTITION.

Работа с таблицами

Интерфейс для виртуальных внешних ключей

Возможность создавать виртуальные внешние ключи появилась довольно давно. В основном они используются для:

  • автодополнения условий JOIN;
  • отображения виртуальных отношений на диаграммах;
  • навигации по связанным между собой данным в редакторе данных.

Основным способом их создания был вызов действия Store Relation на условии JOIN в запросе. Его было не совсем просто найти, и всей этой функциональности не хватало интуитивности. Вот что мы изменили в этот раз.

Теперь виртуальные внешние ключи отображаются в проводнике базы данных:

Их можно создавать и удалять и в проводнике базы данных, и в диалоге Modify Table.

Размер таблицы в быстрой документации MySQL PostgreSQL

Во всплывающем окне документации для MySQL и PostgreSQL теперь отображается размер таблицы. Чтобы его увидеть, нажмите на Show table preview.

Соединение

Скрипт запуска для шаблонов сессий

Теперь можно задать скрипт запуска для шаблонов сессий. Такой скрипт будет запускаться каждый раз, когда создается сессия на основе соответствующего шаблона. Например, это позволяет DataGrip запускать выражение use secondary roles all для интроспекции в Snowflake.

Способы аутентификации MongoDB

Мы добавили множество механизмов аутентификации в диалог подключения к MongoDB. Чтобы ими воспользоваться, обновите драйвер до версии 1.16.

Окно сравнения схем

Поддержка зависимостей объектов

В окне просмотра различий между схемами теперь учитываются зависимые объекты. Наиболее важные из них — это столбцы идентификации PostgreSQL. Если связанные последовательности у двух идентичных столбцов отличаются, то эти различия будут показаны при сравнении этих столбцов.

 

Еще один пример — триггеры, вызывающие процедуру из другой схемы. Теперь разница между такими триггерами будет отображаться, если у процедур разные имена:

Все еще есть два известных ограничения, о которых мы хотим напомнить:

  • DBE-16814: Если процедура/представление ссылается на какой-то объект из своего тела, не гарантируется правильный порядок скриптов. Например, если процедура вызывает другую процедуру, нет гарантий, что последняя будет создана раньше первой.
  • DBE-15598: В некоторых случаях объекты неправильно квалифицируются внутри тел исходных объектов, выражений по умолчанию и т. д.