Релиз DataGrip 2016.3

Привет! Этот пост о том, что нового в DataGrip 2016.3. Напомню, что описанное справедливо и для других IDE на платформе IntelliJ с поддержкой баз данных: PHPStorm, PyCharm, RubyMine и, конечно, IntelliJ IDEA. Кроме одной маленькой возможности, о чём отмечу отдельно.

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

Итак, DataGrip 2016.3!

ee2d140945664d33ab86950b1eac61bf.png


Хранилище исходников


Использования таблицы или представления ищутся не только в исходном коде, но и внутри других объектов базы данных: функциях, процедурах и других представлениях.

Это работает так: DataGrip выгружает исходники объектов в хранилище, куда и обращается при надобности. По умолчанию загружаются коды из всех схем, кроме системных. Настроить это можно в свойствах источника данных, вкладка Options.

Для включения хранилища запустите Forget Schemas из контекстного меню, а потом обновите источник данных — нажмите на Synchronize в панели инструментов.

ddc17211a6d741718d19e5395a34aabb.png

Пробуем: как всегда, Alt+F7 найдёт использования текущего объекта в скриптах. А теперь и внутри других объектов. Справа видно, в каком месте кода нашлось вхождение.
8816bbf82baf4bb2803c33946fa76ddf.png

Как я уже написал, мы загружаем исходники триггеров для популярных СУБД: MySQL, PostgreSQL, SQL Server, Oracle и Sybase. А для PostgreSQL ещё и исходники правил. Теперь можно удалить триггер из контекстного меню.
dcd556776cd24c9ca0e0ae8c6de9376f.png

Починили баги с исходными кодами представлений — теперь они показываются верно во всех местах. Для каждого объекта, исходники которого мы записали в хранилище, доступно Open DDL In Console в контекстном меню.
8f0c1883b0fc4457b0028d1c14256ec3.png

Не забыли и о материализованных представлениях в PostgreSQL. Загружайте исходные коды, обновляйте данные в них из контекстного меню.
6af5c088eeeb47c6a02522f671e3e8f1.png

Когда вы редактируете исходные коды объектов из хранилища, DataGrip отслеживает изменения и подсвечивает их на лету в боковой панели.

Важно понимать, что редактор процедур, функций и представлений показывает локальную версию исходного кода, которая хранится у вас всегда, даже если вы перезапустите IDE. Проще говоря, если вы напишите и выполните здесь запросы, не относящиеся к объекту, они всё равно сохранятся и будут отображаться каждый раз, когда вы редактируете объект. Так что лучше ничего лишнего здесь не запускать :)

95fd6d675c154acbb6b72b578b6626da.png

А если таких изменений много, и они все ещё не отправлены в базу, то их список ищите в Tools → DataBase changes. Внимание! Этого окна в других наших IDE нет, только в DataGrip.
3788eb924a7e45e2a9373c74297fb11d.png

Инструмент сравнения поможет узнать, что поменялось для каждого из объектов.
9f8505b380e94c5f86896ba05a7c02df.png

Комментарии при создании процедур сохраняются в базе.
ba623b64bc7540b58cd83c30e17f9104.png

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


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

Главное нововведение в этой версии — отложенное редактирование: ваши изменения хранятся локально и подсвечиваются, пока вы не отправите их в базу по Ctrl+Enter (Cmd+Enter для OSX). Пока изменения не отправлены, их можно откатить: Ctrl+Z (Cmd+Z для OSX) отменит только те изменения, которые выделены. Соответственно, прежде, чем отменить всё, нажмите Ctrl+A (Cmd+A для OSX) .

417c75364de850ccd9facb605373c5ea.gif

Редактируйте несколько ячеек одновременно. Конечно, это работает, если они все одного типа и не имеют ограничений по уникальности.
cbb3644906bf4297a928525b40b0df30.gif

Кроме того, мы добавили конвертацию — теперь данные можно копировать из ячеек одного типа в другой. А с учётом предыдущего, копировать колонками: даты в строки, логические значения в числа и так далее. Это сработает, даже если исходная таблица и таблица назначения находятся в базах от разных СУБД.
5b307116b64ff6f615657a7b73224029.gif

И небольшие изменения: в редакторе данных, теперь, как и в тексте, работает Выделить следующее появление по Alt+J (Ctrl+G для OSX). Можно выделять несколько полей сразу.
1b5d0ffcd17a4bfd8b6d871dac694862.gif

Ещё одна знакомая вещь из текстового редактора — так называемое «умное» выделение по Ctrl+W (Alt+Up для OSX) — в редакторе данных работает так: сначала выделяется активная колонка, потом активная строчка, потом всё. Как всегда, с зажатым Shift всё происходит в обратном порядке.
4a2ef03106f44fec8cc7ee093a206e81.gif

Поддержка SQL-кода


Автодополнение предложения INSERT предлагает в том числе вариант только с полями, у которых нет значения по умолчанию.
859ea4d6007a4092be6872d877f5e8e6.png

Если параметр или переменная не используются, вам сообщат.
5521cbedc4444618901dc7f7d033d71f.png

Также вас предупредят, если количество колонок при сочетании результатов запросов не совпадает.
6eaa20db24254c89b4af5446059648ec.png

Автодополнение для JOIN USING, основанное на поиске колонок с одинаковыми именами, теперь работает для PostgreSQL.
1d6de834329f450a82e6ef943772c1e2.png

Поиск использования параметров по Alt+F7 в PostgreSQL понимает ссылки типа $n.
4cf5923bf0d649c8ba6f848dcf425335.png

Навигация по методам, знакомая по другим нашим IDE, у нас стала навигацией по запросам. Сочетания клавиш: Alt+Up и Alt+Down (Ctrl+Down и Ctrl+Up для OSX).
60c5b40ee039844f04e88b97fdb91a54.gif

Интеграция с mysqldump и pg_dump


2b26772308cb4e22b58cac998e068719.png

Для параметров работает дополнение по Ctrl+Space.
ecd25a28561149ebb52cfa28f1a049b5.png

Разное


Ещё когда DataGrip назывался 0xDBE у нас был XML-экстрактор данных — любой набор данных экспортировался в XML. Мы его убрали, но многие просили вернуть обратно: вернули.
5c0298cdcb9d4218a783e757f7a478d0.png

Получается вот что:
b0890d8049804250a1adaccc8ebef119.png

Ускорили запуск больших скриптов из контекстного меню — теперь мы отправляем запросы в базу не по одному, а пакетами.
3802b1abad784a6ca0a286e8fcc4e5b0.png

Ну и напоследок. Многие, наверное, заметили: у нас новые иконки!
58379abe3ecb49029bb7c93843a74695.png

А также:
  • Поддержка грамматик SQL Server 2016 и PostgreSQL 9.6
  • Автоматическое определение, устарел ли драйвер
  • Добавили Drop в контекстное меню многих объектов
  • Шрифт FiraCode с лигатурами идёт из коробки
  • Поддержка Auto-inc для таблиц в SQLite
  • Поддержка Expression index в SQLite

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

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

Спасибо!
Команда DataGrip
_
JetBrains
The Drive to Develop

Комментарии (3)

  • 25 ноября 2016 в 19:17

    0

    Опять же, не злорадства ради, до сих пор нельзя sequence’ы по delete удалять, таблицы можно, причем каскадно, а ключи приходится через консоль и drop sequence: https://youtrack.jetbrains.com/issue/DBE-2750

    • 25 ноября 2016 в 19:24 (комментарий был изменён)

      0

      Обратил внимание на упоминание об этом в статье: «Добавили Drop в контекстное меню многих объектов». Полез проверить еще раз и действительно — уже можно, значит этот тикет можно закрыть.

    • 25 ноября 2016 в 19:31 (комментарий был изменён)

      0

      Да, мы добавили, просто баг не закрыли =) Закроем.

© Habrahabr.ru