Что нового в DataGrip 2017.3

Привет! DataGrip замыкает цепочку релизов наших IDE, хотя вы уже могли попробовать то, о чём я расскажу, в других продуктах: поддержка баз данных есть во всех наших IDE, кроме WebStorm (потому что он дешевле), CLion и AppCode (потому что не просят).

3d537a159a274419d1fbd5e675b9b62e.jpg


Объекты базы данных


Не каждый день мы закрываем тикет с номер меньше, чем 100. Теперь можно группировать источники данных по нажатию F6.
776c871e526b13fe004ee38c5bd91ecb.png
Группа — атрибут источника данных, так что создать пустую папку и складывать туда источники нельзя. Для создания новый группы выберите New Group в меню, которое появляется по F6.

Мы заменили Schemas… в дереве базы данных на легковесный ховер, который показывает, сколько схем видно и сколько их всего. Чтобы добавить новые схемы, нажмите на ховер.

8f59c6b7531ce066c2cbb95620033bf8.png

Или используйте пункт контекстного меню Database tools → Manage selected schemas. Ещё один вариант: Alt+Enter Manage selected schemas.

Пользователи и роли теперь отображаются в дереве объектов.

eb289bf63559a3fddc7ca5637aab5324.png

Добавили поддержку обёрток сторонних данных и, как следствие, сторонних таблиц для PostgreSQL.

590df9a03a18f60e33c272c487cd3318.png

Теперь в редактор можно перетащить несколько объектов из дерева.

3bd9ef0a082061625dc3609597951c13.gif

Но если нужны все столбцы таблицы, больше подходит Alt+Enter на звёздочке → Expand column list.

SQL


SQL-generator создаёт DDL-скрипты для объектов из дерева. Можно выделить несколько объектов, а можно сгенерировать DDL для всей схемы. Для этого нажмите Ctrl/Cmd+Alt+G или выберите в контекстном меню объекта SQL Scripts → SQL Generator…

3584891811b90c43ada8a641b316adbe.png

Улучшили автодополнение для JOIN, теперь условие по внешним ключам предлагается не после ON, а сразу. Даже алиасы подставляет :)

70b6a3c04f3bd6ba96d370cbb4ca9ea3.png

А ещё поддержали грамматику PostgreSQL 10.

6581bf23043e02095d8814170581ca92.png

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


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

55add8b630467b26ded47f19cd02479d.png

А если к файлу прикреплять консоль, появляется меню с источниками данных и всеми консолями, которые для них созданы.
57f3c706984cecccf71fe1acc7983e8f.png

Раньше было одно настраиваемое поведение для выполнения запросов — теперь три. На каждое можно назначить отдельное сочетание клавиш. Например, то, что по умолчанию (Ctrl/Сmd+Enter) будет спрашивать — какой запрос выполнить, если их несколько. А на другое сочетание клавиш можно назначить выполнение всего скрипта.

9c5f2c508f5d20326d906718c1b26235.png

Добавили действие Set Current Schema для тех, кто не хочет водить мышкой, чтобы переключить схему для редактора SQL в правом верхнем углу.

4829eab7fe3393bdd9041b46941fb18a.png

Например, я назначил на него сочетание клавиш Ctrl/Cmd+Вверх. В платформе оно показывает навигационную панель, но если кто-то ей пользуется, мой совет — использовать Recent Files по Ctrl/Сmd + E.

87cb4013b242a91198992cb4bfcb0a11.png

Соединение с базой


Добавили новые возможности в SSH-туннелирование:

— Чтение OpenSSH конфиг-файлов (~/.ssh/config и /etc/ssh/ssh_config).
 — Диалоговое окно для One Time Password.
 — Использование SSH-agent и Pageant для аутентификации.

211bc2bc03e76faea02829b74ccf9e99.png

А ещё мы поддержали базу данных Exasol.

2228199053adfd4e5c100430a8020498.png

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


Нас просили сделать вставку из Экселя. В общем случае, это означает уметь вставлять значения в формате CSV. Подскажите DataGrip, в каком формате будете вставлять значения, или разрешите определить автоматически.

20f7bd30b0c674e0e1afbeaabea35d5d.png

И вперёд!

143d3181999f3bd6df653d98b119d06d.gif

Числа теперь выравниваются по правому краю.

4a9147b5ca241af16ff4a1b169a212cc.png

Вкладки восстанавливаются после закрытия IDE. Отображать данные в них — не лучшая идея, если у вас было открыто десять вкладок с результатами тяжёлых запросов. Загружайте данные во вкладки по сочетанию клавиш Ctrl+F5/Сmd+R.

079484a1ffc1fe318b753b155bad0178.png

Сравнивайте содержимое двух или трёх ячеек по Shift+Ctrl/Cmd+D.

b6e12da6e3a868ae78cff437ec894b5f.png

Навигация


В одном из предыдущих обновлений мы переделали навигацию — то, что в платформе называется Navigate to declaration (Ctrl/Cmd+B или Ctrl/Cmd + Клик), стало открывать редактор DDL, а не показывать объект в дереве.

8b54870cc57e8520ae23a4de99e4cc0a.png

Для привыкших к старому поведению добавили настройку: Navigate references to DDL editor. Сочетая выключение этой опции с опцией Auto-scroll from Editor, настраивайте поведение действия Navigate to declaration:

fe24d32e84fbcf8c5f43a71602086d87.png

Navigate references to DDL editor Вкл.
Auto-scroll from Editor Вкл.
Откроется DDL-редактор объекта, а сам объект выделится в дереве базы данных. Фокус в DDL-редакторе.

Navigate references to DDL editor Вкл.
Auto-scroll from Editor Выкл.
Откроется DDL-редактор объекта, в дереве ничего не выделится.

Navigate references to DDL editor Выкл.
Объект выделится в дереве базы данных.

Не забывайте о действии Select in database view, которое выделяет объект в дереве, — найдите его по Find Action (Ctrl/Cmd + Shift + A). Я назначаю на него сочетание клавиш Ctrl/Alt+D, по умолчанию сочетания клавиш нет.

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

В контекстном меню источника данных появились все ассоциированные консоли.

84e4d7d6c30532fd471d2e9a39c2a6fb.png

Скретч-файлы и консоли теперь во вкладке Files, а не в отдельной.

154c15aee595ba23d5fdafd6e88bdb25.png

Остальное


 — Генерация DDL для таблиц не включает представления.
 — Генерация DDL для MySQL работает с экранированными кавычками. Но работать может долго: больше информации здесь.
 — Генерация DDL для функции в PostgreSQL включает все атрибуты (кроме obj_file и ink_symbol).

— Синхронизация настроек между компьютерами.
 — Время отображается в UTC.
 — Улучшена поддержка PIVOT.
 — Раскрытие звёздочки работает с табличными алиасами.
 — SQL-экстракторы учитывают стиль кода из настроек.
 — Возможность указать текущую схему для неподдерживаемых баз.
 — В Replace in path можно заменить сразу несколько выбранных вхождений.

Ждём вашего мнения в твиттере или здесь в комментариях.
Максим Соболевский и команда DataGrip

© Habrahabr.ru