Привет! Посмотрим на новые штуки в — DataGrip 2019.1. Напомним, что функциональность DataGrip включена и в другие наши платные IDE, кроме WebStorm.

image

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


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

Apache Hive – система управления базами данных на основе платформы Hadoop.
Greenplum – аналитическая СУБД для хранилищ данных на основе PostgreSQL.
Vertica – колоночная база для анализа больших данных.
Snowflake – облачное хранилище данных. Если говорить о реляционных базах, то Snowflake просили больше всего. В этом релизе мы поддержали только SQL, инстропекцию выпустим попозже.

image

Соединение


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

General


В этой вкладке, в основном, произошёл рефакторинг.

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

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

image

В комментариях к прошлому посту много обсуждали сохранение пароля. Добавили новых опций и сделали выпадающий список. Значения этого списка:

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

image

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

image

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

image

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

image

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
не включен, для каждой новой консоли создаётся новое подключение.

image

Schemas


Сюда переехал фильтр отображаемых в дереве объектов.

image

Навигация и поиск


Список последних местонахождений

Новое окно Recent locations показывает, где вы недавно были. Элементы списка — это небольшие куски кода, которые вы недавно редактировали или смотрели. Это полезно, если вы помните контекст, но не помните название файла. В DataGrip такое часто происходит, потому что все консоли названы похожим образом :) Сочетание клавиш по умолчанию:
Ctrl/Cmd+Shift+E.

image

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

Поиск по пути

Мы убрали ненужные опции, которые “достались” нам от платформы: Module и Project. Теперь по умолчанию Find in path в DataGrip ищет везде. Ещё добавили новую область поиска Attached Directories — она включает в себя только файлы и папки из панели Files.

image

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

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

– Посмотреть DDL: Ctrl/Cmd+B.
– Открыть данные: F4.
– Открыть окно Modify Table: Ctrl/Cmd+F6.
– Отобразить в другом контексте: Alt+F1 (например, показать в дереве).
– Увидеть общую информацию: Ctrl+Q/F1.
– Сгенерировать SQL: Ctrl/Cmd+Alt+G.

image

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


Комбинированные элементы в автодополнении
Для CREATE и DROP автодополнение предлагает комбинированные варианты.

image

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

image

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

DataGrip предупредит, если вы используете курсор, который не открыли.

image

Следующие две инспекции выключены по умолчанию, но некоторым могут понадобится.

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

image

Инспекция, которая ругается на оператор GOTO.

image

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


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

image

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

image

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

image

Дерево базы данных


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

image

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

image

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

image

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

image

Остальное


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

image

О том, как делать свои темы, читайте тут:

Detailed tutorial about how to create your own custom Theme.
Blog post about creating custom themes for IntelliJ Platform

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

Cyan
image

Dark purple
image

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

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

image

Всё!

Более подробно тут (на англ.)
Скачать триал на месяц
Твитер, который мы читаем
– Почта, которую мы читаем: datagrip@jetbrains.com
Баг-трекер
– Комментарии, которые мы читаем vvv

Команда DataGrip

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


  1. shapovalex
    03.04.2019 17:08
    +4

    Когда же прийдет очередь MongoDB?


    1. Yeah
      03.04.2019 17:14

      Сдается мне, у них какие-то проблемы с лицензированием. Потому как есть совсем уж экзотические вещи, а Монга, которую сейчас пихают везде, где только можно — отсутствует


      1. shapovalex
        03.04.2019 17:29

        Судя по
        youtrack.jetbrains.com/issue/DBE-41
        дело в том, что они не ходят заморачиваться с чистым NoSQL.
        Все базы которые они сейчас поддерживают так или иначе имеют SQL подобный синтаксис.

        И, опять же, исходя из тикета тот же Redis имеет больше плюсов, чем монга


    1. moscas Автор
      03.04.2019 17:37
      +2

      Придёт! Проблем с лицензированием нет. Монга действительно непохожа на то, что мы делали до этого, отчасти поэтому её ещё нет.


      1. stgunholy
        05.04.2019 12:20

        Очень-очень жду!


  1. KonkovVladimir
    03.04.2019 17:14

    Доброго дня.
    В KDE были проблемы сохранения пароля в KWallet они уже решены?
    И мне кажется не только меня интересует этот вопрос habr.com/ru/company/JetBrains/blog/431646/#comment_19458272


    1. moscas Автор
      03.04.2019 17:32

      Пока нет, к сожалению :( youtrack.jetbrains.com/issue/IDEA-163275


  1. SLASH_CyberPunk
    03.04.2019 17:29

    Давно ждал вертику, жаль только, что на текущие коннекты хоть иконку и поменяли (похоже парсинг по jdbc строке), но вот поменять драйвер на новый нет возможности, т.к. использовался кастомный postgres


    1. moscas Автор
      03.04.2019 17:32

      Что такое «нет возможности»?


      1. SLASH_CyberPunk
        03.04.2019 17:39


        1. moscas Автор
          03.04.2019 17:48

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


      1. SLASH_CyberPunk
        03.04.2019 17:50

        Решил проблему, поменял у старого драйвера диалект, похоже список драйверов формируется на основе этого.


  1. someoneyoudontknow
    03.04.2019 17:34

    ребят, JetBrains, у вас -ус отклеился- сертификат сломался на www.jetbrains.com


    1. moscas Автор
      03.04.2019 17:34

      Непонятно, вроде всё номарльно. Напишите подробней, пожалуйста.


      1. someoneyoudontknow
        03.04.2019 17:37

        виноват, все ок. это у меня виртуалка с ума сходит. прошу прощения за беспокойство


  1. Phoen
    03.04.2019 19:20

    Очень хороший инструмент, но для pet projects и прочей домашней разработки очень печалит отсутствие community версии. В обозримом будущем не предвидится?


    1. SbWereWolf
      03.04.2019 22:58

      оно стоит копейки для физических лиц, дождитесь скидок, будет ещё дешевле.


    1. moscas Автор
      04.04.2019 12:25

      Не предвидется. Но нам кажется, что 9 долларов в месяц это не так уж много.


  1. gudvinr
    03.04.2019 19:58

    А схемы БД так и не добавили в фильтр объектов.


  1. ivanych
    03.04.2019 22:21

    Напомним, что функциональность DataGrip включена и в другие наши платные IDE, кроме WebStorm.

    Можно чуть подробнее? Есть плагин, который превращает, скажем, PyCharm в DataGrip? Или что это значит?


    1. ivanych
      03.04.2019 23:12

      Впрочем, что это я? Пошел и сам посмотрел — вкладка «Database» присутствует по умолчанию и в ней, собственно, находится всё что нужно.

      Ишь ты, почему я раньше не обращал внимания? Спасибо, удобно!


      1. Dmitry88
        04.04.2019 00:57

        Полностью повторяет или DataGrip имеет свои уникальные фичи?


        1. ivanych
          04.04.2019 01:06

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


        1. gudvinr
          04.04.2019 01:42

          На мой взгляд, если нужная функциональность DG — это дёрнуть пару запросов раз в сессию и погулять по таблице/поредактировать колонки — то встроенного в другие IDE функционала достаточно и разницы не заметить.


          Но если нужно много работать с SQL, отслеживать изменения в хранимых процедурах и работать с больше чем двумя БД, то DG обеспечивает более приятный опыт, потому что интерфейс в этом плане более заточен под такие нужды и в этом случае уже сама не-бд ориентированная IDE только мешает.


        1. moscas Автор
          04.04.2019 12:20

          Функциональность полностью повторяет. Но user experience да, лучше.


  1. rjhdby
    04.04.2019 11:36

    По Informix никаких новостей?


    1. moscas Автор
      04.04.2019 12:21

      Пока никаких, могу только номер тикета прислать :) youtrack.jetbrains.com/issue/DBE-435


  1. z0mb1ek
    04.04.2019 12:20

    было бы хорошо научить DataGrip редактировать Set в Cassandra


    1. moscas Автор
      04.04.2019 12:21

      Заведите тикет, пожалуйста.


    1. kornilova-l
      04.04.2019 14:36

      С Cassandra не все так просто, потому что драйвер не умеет конвертировать строки в set, map, udt…
      Импорт для таких типов тоже не работает :(
      Тикет есть: youtrack.jetbrains.com/issue/DBE-8058
      Мы постараемся обойти это ограничение


  1. sFreest
    04.04.2019 14:36

    Друзья, не могли бы вы починить youtrack.jetbrains.com/issue/DBE-5640? Тикет висит больше года, из-за него невозможно писать SQL-код для Oracle в отличных от дефолтного стилях во всех IDE JetBrains. Только в моей компании от этого страдает несколько десятков разработчиков…


    1. moscas Автор
      05.04.2019 11:46

      Мы разобрались, где проблема, будем чинить. Спасибо!


    1. moscas Автор
      05.04.2019 15:30

      Починили :)


      1. sFreest
        05.04.2019 16:23

        Спасибо огромное, будем ждать фикса!


  1. Zuzik3500
    04.04.2019 18:13

    Тикет есть youtrack.jetbrains.com/issue/DBE-2310 и youtrack.jetbrains.com/issue/DBE-6208, не подскажете ожидается ли по нему прогресс?
    Еще такая проблема возникает (пользуюсь PyCharm):
    1) Создаем процедуру в базе, делаем в ней ошибку. При коммите в консоли она (текст ошибки) не отображается (возможно я его просто не увидел, сейчас точно сказать не могу, проверить могу чуть позже).
    2) В списке процедур новосозданная отображается подчеркнутая красной линией. Нажимаем правой кнопкой, находим пункт перекомпилировать — произошла ошибка, текст ошибки не отображается. Хотелось бы, чтоб в этом случае его можно было увидеть.

    И с этим тикетом youtrack.jetbrains.com/issue/DBE-6187 как я понимаю пока все глухо?


  1. cjbars
    04.04.2019 18:57

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


    1. moscas Автор
      05.04.2019 11:47

      Спасибо и вам :)


  1. merhalak
    05.04.2019 14:19

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

    Вы с таким поаккуратнее, а то горячую клавишу оставили на удалении: решит кто-то сделать detach, а получит remove.


    Кстати, а по идейке статья уже была?


    1. moscas Автор
      05.04.2019 14:23

      Да я, честно говоря, думаю, мало кто знал, что Detach делается через клавишу Delete :)
      Но на Delete по-прежнему появляется вопрос, так что, чтобы облажаться, нужно очень постараться.

      Статья про Идею еще не вышла, но выйдет.