Что нового в DataGrip 2020.3

SQL для MongoDB

Теперь можно писать SQL в MongoDB. Мы написали транслятор SQL в JavaScript.

Работают только запросы SELECT и предложения JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, OFFSET. Подробнее обо всем, что мы поддержали, читайте здесь.

В контекстном меню есть две опции: Copy JS script to clipboard и Show JS Script. Последняя откроет окно с JS-запросом, который мы отправим на сервер. Здесь же можно его отредактировать и запустить.

Соединение

Поддержка Couchbase

Поддержка Couchbase

Наша семья растет: мы поддержали Couchbase! Важно отметить, что DataGrip работает с Couchbase Query, а не с Couchbase Analytics.

Аутентификация через Azure AD

Аутентификация через Azure AD

Об этом нас давно просили: теперь к базе данных Azure SQL можно подсоединиться через Active Directory.

Рабочая папка

Рабочая папка

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

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

Редактор больших значений

Мы сделали этот редактор в предыдущей версии, а сейчас улучшили несколько вещей.

Форматированное значение

Форматированное значение

Если в ячейке хранится однострочный XML или JSON-файл, в редакторе значений он будет показан в отформатированном виде. Причем вы можете отредактировать значение в удобном виде, а сохранится оно все равно как одна строка.

Расположение снизу

Расположение снизу

Если вам важна ширина экрана, передвиньте редактор вниз.

Изображения

Изображения

Еще в этом же редакторе отображаются картинки.

Открытие таблиц в транспонированном виде

Открытие таблиц в транспонированном виде

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

Выделение в редакторе

Выделение в редакторе

В редакторе всегда работало умное выделение: нажимаете Ctrl+W на Windows/Linux или Opt+Up на macOS и сначала выделяется текущая строка, потом текущий столбец, потом вся таблица. Теперь можно двигаться и в обратном порядке: при помощи Ctrl+Shift+W на Windows/Linux и Opt+Down на macOS.

Импорт и экспорт

Новые форматы

Новые форматы

Мы добавили два новых формата: One-row и SQL-Insert-Multirow.

One-Row копирует выделенные значения в одну строку через запятую. Это удобно, когда значения столбца нужно вставить в оператор IN.

SQL-Insert-Multirow сгенерирует один INSERT для нескольких строк.

Не заключать значения в кавычки

Не заключать значения в кавычки

В CSV-форматах появилась новая опция: never quote values.

Интроспекция

Сбор диагностической информации

Сбор диагностической информации

Интроспекция — это процесс сбора информации о базе данных. Эту информацию DataGrip хранит у себя, чтобы помогать вам навигироваться по базе, искать объекты, дополнять код.

Иногда при интроспекции обнаруживаются разные проблемы. Мы не всегда можем их воспроизвести. Поэтому мы придумали механизм сбора данных, которые пригодятся, если вы пишете нам в поддержку или трекер.

Diagnostic refresh запустит интроспекцию, соберет нужную информацию и запишет ее в файл, который откроется в файловом менеджере. Он поможет нам понять, что происходит.

Prepare introspector diagnostic собирает всю возможную информацию, не перезапуская интроспекцию. Результат работы этого действия присылайте, если что-то устарело или не подгрузилось.

Права доступа

Права доступа

DataGrip теперь знает о правах доступа и показывает их в сгенерированном DDL для объекта.

Измененные объекты в проводнике базы данных

Измененные объекты в проводнике базы данных

Если вы изменили DDL объектов, но ещё не успели отправить свои изменения в базу, эти объекты будут подсвечены в дереве. Раньше измененные объекты показывались только в окне Database Changes.

Больше свойств таблиц

Больше свойств таблиц PostgreSQL

DataGrip генерирует DDL таблицы, включая TABLESPACE и INDEX ACCESS METHOD.

Новые объекты

Новые объекты Greenplum

В дереве базы данных Greenplum стало больше отображаемых объектов: мы добавили коллации, материализованные представления, внешние таблицы, обертки сторонних данных, сторонние сервера, сторонние таблицы и сопоставления пользователей.

Корректное отображение перегрузок

Корректное отображение перегрузок Oracle

Перегрузки внутри одного пакета раньше отображались как один объект. Теперь — как несколько. Число в квадратных скобках — это индекс процедуры в базе данных.

Помощь в написании кода

Форматирование диалекта Generic

Форматирование диалекта Generic

Теперь вы можете форматировать запросы, работая с базами, которые мы не поддерживаем.

Новый интерфейс переименования

Новый интерфейс переименования

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

Исправление опечаток

Исправление опечаток

Alt+Enter на Windows/Linux и Opt+Enter на macOS теперь сразу предлагают список исправлений, без вложенного меню.

Конфликт вызовов

Конфликт вызовов Oracle

Если возникает конфликт вызова перегруженной процедуры, DataGrip предупредит об этом.

Новые настройки капитализации в форматировании

Новые настройки капитализации в форматировании

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

Выполнение запросов

Конфигурации запуска

Запуск скриптов из файлов стал удобнее:

Смена контекста

Смена контекста

DataGrip предупредит, если внутри скрипта меняется контекст, то есть используется USE или SET search_path.

Отображение контекста

Отображение контекста

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

История запуска

История запуска

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

Вывод консоли в отдельной вкладке

Вывод консоли в отдельной вкладке

Если для вас важна ширина экрана, вывод консоли можно открывать в новой вкладке окна Services по умолчанию. Таким образом, вся ширина экрана будет задействована для результата запроса или текстового вывода. Включается это в Settings/Preferences | Database | General | Open new services tab for sessions.

Имена вкладок

Имена вкладок SQL Server

В прошлом году мы сделали так, что комментарии перед запросом становятся именами вкладок. Это не работало в SQL Server, если запускать сразу несколько запросов, потому что SQL Server обрабатывает несколько запросов как один. Теперь все работает как надо.

Подсказки для создания индекса в планировщике

Подсказки для создания индекса в планировщике SQL Server

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

Редактирование DDL

Предупреждение о неактуальной структуре таблицы

Предупреждение о неактуальной структуре таблицы

Если вы открываете DDL таблицы, а кэшированная версия DataGrip успела устареть, вас об этом предупредят. Раньше это работало только для объектов с исходным кодом: процедур, функций, представлений.

Предупреждение о том, что объект удален

Предупреждение о том, что объект удален

Если объект был удален, пока вы его редактировали, появится сообщение об этом.

Например, вы вносили изменения в процедуру, а в это время от нее кто-то избавился.

DataGrip предложит три варианта:

  • Revert local changes: выбирайте этот вариант, если вас устраивает, что процедура удалена. Редактор закроется.
  • Keep local changes: в этом варианте вы будете продолжать вносить изменения в процедуру, а при нажатии Submit она будет создана заново.
  • Restore in the database: то же самое, но DataGrip сразу же восстановит вариант процедуры, который был актуален на тот момент, когда вы ее открыли. Это нужно для того, чтобы правильно подсветить ваши текущие изменения при редактировании. После нажатия Submit результаты этого действия и Keep local changes будут одинаковы.
Действия по работе с исходниками

Действия по работе с исходниками

Действия Submit, Rollback и Show Changes теперь можно запускать для объекта из любого контекста, в том числе проводника. Например, у вас висят изменения для некоторого количества процедур. Можно выделить несколько из них в дереве и только их исходники отправить в базу. А остальные, например, откатить. Раньше эти операции делались только из окна Database Changes.

Общее

Перетаскивание вкладок

Перетаскивание вкладок

Теперь можно переносить вкладки в разные области экрана. Получается, есть и полностью независимый сплит-режим: если выбрать режим In-Editor Results, у каждой вкладки будет свой результат запроса.

Начальный экран

Начальный экран

В отличие от других наших IDE, в DataGrip никогда не было начального экрана. При открытии DataGrip 2020.3 вы, как обычно, увидите последний открытый проект (или проект по умолчанию). Но если закрыть все проекты, появится начальный экран. Оттуда можно перейти к любому проекту, настройкам IDE и к управлению плагинами.

Плагины для отдельных проектов

Плагины для отдельных проектов

В настройках плагинов (Settings | Plugins) теперь можно включать и отключать плагины только для текущего проекта. Плагин будет загружен автоматически при открытии первого проекта, в котором он используется. Соответственно, при закрытии последнего такого проекта плагин будет удален.

Синхронизация темы с системными настройками

Синхронизация темы с системными настройками

Если выбрать Sync with OS в настройках Settings/Preferences | Appearance & Behavior | Appearance | Theme, то IDE будет автоматически синхронизировать цветовую cхему с настройками операционной системы.

Сочетания клавиш macOS словами

Сочетания клавиш macOS — словами

Некоторым людям сложно читать условные обозначения клавиш на macOS. Теперь можно дернуть ключ ide.macos.disable.native.shortcut.symbols в реестре, и вместо значков будут слова. Для вызова реестра используйте Find Action (Cmd+Shift+A) и введите там «Registry».

Вкладка предпросмотра

Вкладка предпросмотра

Теперь по клику на файл его содержимое можно увидеть во вкладке предпросмотра. Для этого в настройках панели Files выберите Enable Preview Tab. Если вы начинаете редактировать файл, эта вкладка превращается в обычную.

Простой калькулятор

Простой калькулятор

Выполняйте несложные вычисления в окне Search Everywhere.

Ассоциации с файлами

Ассоциации с файлами

С этой версии в настройках DataGrip можно указать, какие файлы IDE должна открывать по умолчанию. В меню Settings/Preferences | Settings | Editor | File Types выберите опцию Associate file types with DataGrip.

Кстати, это могут быть не только файлы, связанные с базами данных. DataGrip — вполне подходящий редактор для JSON, HTML или MarkDown*!

*с плагином

Развернуть все

Развернуть все

Раньше в панелях Database и Files была только кнопка Collapse All, которая закрывает все узлы. Мы добавили кнопку Expand All, которая открывает все возможные узлы до последнего уровня. Это может пригодиться при быстром поиске, когда вы просто печатаете имя объекта, находясь в дереве. Такой поиск ищет только по открытым узлам. Для удобства вы также можете воспользоваться сочетанием клавиш Cmd+Знак плюса на macOS или Ctrl+Numpad+Знак плюса на Windows и Linux.

Важные исправления

  • При вызове быстрого поиска действие Copy копирует текст найденного элемента, а не текст поискового запроса: IDEA-238064.
  • Исправлена проблема с тестовым подключением к MongoDB. Раньше оно всегда было успешным, даже если соединение не было установлено.
  • Поля BLOB-объектов MySQL снова можно редактировать: DBE-11311.
  • Пользовательский размер страницы сбрасывается в редакторе данных при изменении параметра Limit page size setting: DBE-11510.
  • MySQL Оператор USE в скрипте не сбрасывается после первого запроса: DBE-9145.