company_banner

DataGrip 2019.1: поддержка новых баз, инициализационные скрипты, новые инспекции и другое

    Привет! Посмотрим на новые штуки в — 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
    Баг-трекер
    – Комментарии, которые мы читаем ↓↓↓

    Команда DataGrip
    JetBrains
    188,00
    Делаем эффективные инструменты для разработчиков
    Поделиться публикацией

    Похожие публикации

    Комментарии 41

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

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

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

          И, опять же, исходя из тикета тот же Redis имеет больше плюсов, чем монга
          +2
          Придёт! Проблем с лицензированием нет. Монга действительно непохожа на то, что мы делали до этого, отчасти поэтому её ещё нет.
            0
            Очень-очень жду!
          0
          Доброго дня.
          В KDE были проблемы сохранения пароля в KWallet они уже решены?
          И мне кажется не только меня интересует этот вопрос habr.com/ru/company/JetBrains/blog/431646/#comment_19458272
          0
          Давно ждал вертику, жаль только, что на текущие коннекты хоть иконку и поменяли (похоже парсинг по jdbc строке), но вот поменять драйвер на новый нет возможности, т.к. использовался кастомный postgres
            0
            Что такое «нет возможности»?
              0
                0
                Проставьте в вашем кастомном драйвере вертиковский диалект, и здесь появится нужный драйвер.
                0
                Решил проблему, поменял у старого драйвера диалект, похоже список драйверов формируется на основе этого.
              –1
              ребят, JetBrains, у вас -ус отклеился- сертификат сломался на www.jetbrains.com
                0
                Непонятно, вроде всё номарльно. Напишите подробней, пожалуйста.
                  0
                  виноват, все ок. это у меня виртуалка с ума сходит. прошу прощения за беспокойство
                0
                Очень хороший инструмент, но для pet projects и прочей домашней разработки очень печалит отсутствие community версии. В обозримом будущем не предвидится?
                  +1
                  оно стоит копейки для физических лиц, дождитесь скидок, будет ещё дешевле.
                    0
                    Не предвидется. Но нам кажется, что 9 долларов в месяц это не так уж много.
                    0

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

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

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

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

                        Ишь ты, почему я раньше не обращал внимания? Спасибо, удобно!
                          0
                          Полностью повторяет или DataGrip имеет свои уникальные фичи?
                            0
                            Поскольку я сам первый раз это увидел, то не могу уверенно сказать. На глаз — очень похоже.
                              +1

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


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

                                0
                                Функциональность полностью повторяет. Но user experience да, лучше.
                            0
                            По Informix никаких новостей?
                            0
                            было бы хорошо научить DataGrip редактировать Set в Cassandra
                              0
                              Заведите тикет, пожалуйста.
                                +1
                                С Cassandra не все так просто, потому что драйвер не умеет конвертировать строки в set, map, udt…
                                Импорт для таких типов тоже не работает :(
                                Тикет есть: youtrack.jetbrains.com/issue/DBE-8058
                                Мы постараемся обойти это ограничение
                                0
                                Друзья, не могли бы вы починить youtrack.jetbrains.com/issue/DBE-5640? Тикет висит больше года, из-за него невозможно писать SQL-код для Oracle в отличных от дефолтного стилях во всех IDE JetBrains. Только в моей компании от этого страдает несколько десятков разработчиков…
                                  0
                                  Мы разобрались, где проблема, будем чинить. Спасибо!
                                    0
                                    Починили :)
                                      0
                                      Спасибо огромное, будем ждать фикса!
                                    0
                                    Тикет есть youtrack.jetbrains.com/issue/DBE-2310 и youtrack.jetbrains.com/issue/DBE-6208, не подскажете ожидается ли по нему прогресс?
                                    Еще такая проблема возникает (пользуюсь PyCharm):
                                    1) Создаем процедуру в базе, делаем в ней ошибку. При коммите в консоли она (текст ошибки) не отображается (возможно я его просто не увидел, сейчас точно сказать не могу, проверить могу чуть позже).
                                    2) В списке процедур новосозданная отображается подчеркнутая красной линией. Нажимаем правой кнопкой, находим пункт перекомпилировать — произошла ошибка, текст ошибки не отображается. Хотелось бы, чтоб в этом случае его можно было увидеть.

                                    И с этим тикетом youtrack.jetbrains.com/issue/DBE-6187 как я понимаю пока все глухо?
                                      0
                                      2310: Пока планов нет.
                                      6208: Постараемся добавить поддержку обфусцированных пакетов в нашем скриптогенераторе в 2019.
                                      6187: Тоже пока могу ничего сказать.

                                      Про описанную проблему:
                                      1) Должен работать, но без навигации.
                                      2) Сделайте тикет, пожалуйста.
                                      0
                                      Слушайте, ребята, хочу просто сказать спасибо JetBrains за такие супер офигительные инструменты. Мы не успеваем освоить новые фичи как завозят новые. Спасибо большучее!
                                        0
                                        Спасибо и вам :)
                                        0
                                        В дереве файлов добавили действие Detach Directory: открепить папку. Раньше, чтобы открепить папку (то есть не показывать её в этом дереве), надо было нажать Delete, и DataGrip спрашивал: вы хотите удалить или открепить? Это было неудобно и непонятно :)

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


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

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

                                          Статья про Идею еще не вышла, но выйдет.
                                          0
                                          Кстати, буду в Москве на следующей неделе. Если кто-то хочет пригласить меня к себе в офис, чтобы я прочитал доклад DataGrip tips and tricks, пишите на maxim.sobolevskiy[at]jetbrains.com

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

                                          Самое читаемое