Что нового в DataGrip 2019.1

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

В этом релизе сразу четыре базы получили официальную поддержку в наших инструментах.

Greenplum – аналитическая СУБД для хранилищ данных на основе PostgreSQL. Ее делает Pivotal при помощи сообщества.

Vertica – колоночная база для анализа больших данных.

Apache Hive – система управления базами данных на основе платформы Hadoop.

Snowflake – облачное хранилище данных. В этом релизе мы поддержали только SQL, интроспекция появилась в версии 2019.1.2.

Окно соединения

Общее

Мы сделали изменения в диалоговом окне соединения с базой: постарались сделать более понятно и удобно.

Поле Connection type раньше называлось URL type и было в самом низу. Но, так как значение в этом поле определяет дальнейший процесс, теперь оно наверху.

Поле Database расположили после ввода логина и пароля, потому что аутентификация нужна для того, чтобы отобразить список баз по Ctrl+Space.

Добавили новых опций для сохранения пароля и сделали выпадающий список. Значения этого списка: Не сохранять пароль, Сохранять до перезапуска DataGrip (раньше так работала опция “не сохранять”), Сохранять на сессию (пока вы не отсоединитесь от источника данных), Сохранять навсегда.

Чтобы избежать непонятностей, теперь пустой пароль вводите через контекстное меню.

Результаты Test Connection теперь показываются в самом окне, никаких лишних кликов и диалогов. Еще мы добавили ссылку на статью о решении проблем с подключением.

Если драйвера не скачаны, DataGrip предложит это сделать. Раньше кнопка Test Connection была в таком случае заблокирована, что путало пользователей.

Вкладка Options

Сюда из вкладки General переехали настройки Read-only, Auto-sync, Transaction control.

Новое:
Run keep-alive query each N seconds будет проверять, живо ли соединение с базой, каждые N секунд. Для баз, которые мы не поддерживаем, вы можете сами написать keep-alive-запрос. Это делается в настройках драйвера.
Auto-disconnect after N seconds. Введенное здесь значение в секундах укажет DataGrip, через какое время автоматически отсоединяться от источника данных.
Startup script. Сюда можно вписать запрос, который будет выполняться при каждом создании подключения. Напомним, что если Single connection mode не включен, для каждой новой консоли создается новое подключение.

Переименованная настройка:
Warn if editing an outdated DDL раньше называлась Notify when the outdated object is opened: если она включена, вас предупредят, если DDL редактируемого объекта изменился извне.

Вкладка Schemas

Сюда переехал фильтр объектов из вкладки Options.

Список источников данных

Небольшое улучшение: источники данных на основе DDL теперь расположены в отдельной секции.

Поиск и навигация

Диалог Recent Locations

Новое окно Recent locations показывает, где вы недавно были. Элементы списка — это небольшие фрагменты кода, которые вы недавно редактировали или смотрели.

Это окно вдохновлено другим окном: Recent Files. Это полезно, если вы помните контекст, но не помните название файла. В DataGrip такое часто происходит, потому что все консоли названы похожим образом.

Delete/Backspace удаляет элементы из списка.

Сочетание клавиш по умолчанию: Ctrl/Cmd+Shift+E.

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

Поиск в пути

DataGrip умеет искать по исходникам объектов. Раньше это работало только если выбрать область All Places. Мы убрали ненужные опции, которые «достались» нам от платформы: Module и Project.

Еще добавили новую область поиска Attached Directories. Она включает в себя только файлы и папки из панели Files.

Действия из результатов навигации

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

For instance, if you’re searching for a table, see what you can open from right here:
Table’s DDL: Ctrl+B.
Table’s data: F4 (Enter does the same for tables).
Modify Table dialog: Ctrl+F6.
Locate in… popup: Alt+F1 (Use it to see the object in the database tree view).
Quick doc popup: Ctrl+Q.
SQL generator: Ctrl+Alt+G.


Не забудьте про настройки навигации. Надеемся, что DataGrip покрывает все ваши потребности по навигации.

Анализ кода

Комбинированные элементы в автодополнении

Для CREATE и DROP автодополнение предлагает комбинированные варианты. Например, если вы печатаете CREATE, вам предложат CREATE TABLE.

Не забывайте об аббревиатурах.

Новые инспекции

Появились новые инспекции. Две из них, Usages of GOTO statements () and Named arguments should be used, выключены по умолчанию.

Инспекция Usages of GOTO statements (использование оператора GOTO) имеет три опции:
- Report all GOTO statements (сообщать обо всех GOTO);
- Report uses of GOTO statements to exit a loop (сообщать, если GOTO используется для выхода из цикла);
- Report backward GOTO statements (сообщать об обратных <1>GOTO);

Named arguments should be used. Если используете неименованные аргументы, это будет подсвечено.

Сursor you use is not opened: DataGrip предупредит, если вы используете курсор, который не открыли.

Работа с файлами

Добавили настройку для папки проекта по умолчанию. Новые проекты будут создаваться в этой папке.

Действие Save as… для консоли теперь:
1. Предлагает проектную папку по умолчанию.
2. Запоминает последний выбор.

В дереве файлов добавили действие Detach Directory: открепить папку. Раньше, чтобы открепить папку (то есть не показывать ее в этом дереве), надо было нажать Delete, и DataGrip спрашивал: вы хотите удалить или открепить? Это было неудобно и непонятно.

Теперь можно форматировать файлы из контекстного меню.

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

Мы написали свою интроспекцию для DB2. Это означает, что информацию об объектах базы мы получаем при помощи запросов, а не через JDBC-драйвер, как раньше. В дереве, таким образом, появились объекты, которых раньше не было: триггеры, типы, методы, модули, счетчики, роли и другие.

Дерево хранит контекст: имя источника данных залипает сверху.

Для не поддерживаемых баз нарисовали иконки: те, у кого источники данных созданы для таких баз, перестанут путаться. Раньше, если таких источников данных было много, сложно было разобраться — где какой. Надеемся, стало удобней.

Еще нарисовали абстрактных иконок. Их можно использовать в настройках драйвера.

Другие возможности

Кастомные темы

Пользователи DataGrip получили возможность делать любые цветовые схемы. Чтобы вас вдохновить, мы подготовили несколько совершенно новых тем. Новые схема — это плагины, которые надо поставить из раздела Plugins в настройках.

Теперь вы можете поменять цвет практически чего угодно. Делайте свои собственные темы, используя DevKit и меняйте вид IDE, редактируя JSON file. Вот несколько полезных ссылок:

Как создать свою тему.

Статья о кастомных темах в платформе IntelliJ.

Светлая бирюзовая тема

Темная фиолетовая тема

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

Фильтр предлагает значения из буфера обмена.

Поддержка атрибута DEFINER

Поддержали атрибут DEFINER в MySQL and MariaDB.

Во-первых, можно указать — нужно ли генерировать этот атрибут в SQL-генераторе.

Во-вторых, его можно игнорировать при миграции.

Исправленные ошибки

  • Схемы, которых нет в проводнике, не будут учитываться при сравнении. DBE-7604
  • Больше нет пропущенных квалификаций при создании внешних ключей. DBE-4993
  • Столбец, на который ссылается внешний ключ, теперь не теряется в окне Modify Table. DBE-7560
  • Инспекция unreachable code detection больше не срабатывает ложно. DBE-7554
  • [MySQL] Починили проблемы с отображением NULL вместо пустых дат. DBE-69
  • [MariaDB] Исправили ошибки интроспекции. DBE-7743
  • [SQL Server] Больше нет ошибок с COUNT(). На стороне драйвера баг сохранился, так что мы поправили на нашей стороне. DBE-2114
  • [SQL Server] Таблицы больше не дублируются. DBE-7297
  • [Oracle] Вернули кнопку Enable DBMS_OUTPUT. DBE-4702
  • [Oracle] Исправили ошибку с временными сегментами.DBE-7443
  • [Oracle] Исходный код функций и пакетов достается из базы корректно. DBE-6768