company_banner

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

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


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


    Не каждый день мы закрываем тикет с номер меньше, чем 100. Теперь можно группировать источники данных по нажатию F6.

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

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



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

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



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



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



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

    SQL


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



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



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



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


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



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


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



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



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



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


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

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



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



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


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



    И вперёд!



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



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



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



    Навигация


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



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



    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, по умолчанию сочетания клавиш нет.

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

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



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


    Остальное


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

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

    Ждём вашего мнения в твиттере или здесь в комментариях.
    Максим Соболевский и команда DataGrip
    JetBrains 128,88
    Делаем эффективные инструменты для разработчиков
    Поделиться публикацией
    Похожие публикации
    Комментарии 26
    • 0
      А есть така фишка — перетащил таблицу на «экран» (диаграмма в SQL Server Management Studio), правой кнопкой по этой таблице, а там пункт меню «добавить все таблицы которые ссылаются на эту таблицу и все таблицы на которые ссылается эта таблица»? Ну еще бы не только таблицы но и другие объекты бд, типа view, триггеров, хранимых процедур?
      • 0
        Такого в диаграммах пока нет. Самое похожее — можно узнать, в каких других объектах используется этот объект (скажем, тамблица). Для этого подойдёт Find Usages.
        image
      • 0
        ClickHouse есть в планах? Или может быть есть сторонний плагин?
        • +2
          Так есть же
          • 0
            Е-мое, как же я не нашел-то?
            Спасибо!
            • 0
              Мы пользуемся из Idea. Там есть пара подводных камней с конфигурацией JDBC и немного не хватает кликхаусных функций и прочих плюшек.
          • 0
            Почему exasol, а не vertica?
            • 0
              Потому что они сами к нам пришли и сказали, что их инструмент не очень, и они хотят, чтобы мы поддержали их базу, а они будут предлагать наш клиент своим пользователям =)

              Мы разговаривали с ребятами из Вертики на AWS re:Invent неделю назад, и они, в прицнипе, готовы дать нам и грамматику, и запросы для интроспекции. Так как отличия от Постгреса там, вроде бы, не ключевые, сейчас кажется, что поддержка Вертики не будет стоить нам много. Так что мы думаем об этом и вероятность есть.
            • +1
              Всегда поражал размах JetBrains… Берутся за многое, а выходит почти все. Держите планку, спасибо.
              • 0
                Отлично. Очень прилично получается.

                Если пишем wish list, то мне бы хотелось работать с GCP BigQuery.
              • 0
                DataGrip замыкает цепочку релизов наших IDE

                А как же Rider 2017.3?

                • 0
                  Да, вы правы, должен выйти примерно через неделю :) Но так у них первая версия вышла только в августе, в этом году цикл у Райдера немного «свой».
                  • 0
                    И вероятно, останется довольно «своим», поскольку для каждого релиза райдера нужны состоявшиеся стабильные релизы решарпера и идеи.
                • 0

                  В idea Ultimate 2017.3 случилось что-то неудобное с запуском скрипта из sql файла. Теперь по нажатию run (ctrl+что-то+f10) открывается меню в котором видны все базы на зарегистрированных серверах (sql server), а не только отмеченные для работы(как было в предыдущей версии). Можно как-то сделать чтобы было как раньше?

                  • +1
                    Спасибо за фидбек! Мы решили добавить все базы, потому что бывает и наоборот: надо какой-нибудь скрипт запустить, скажем для всех баз, но пользователь не хочет их специально для этого добавлять в дерево, запускать индексы и так далее.

                    Но то, что вы написали тоже логично. Так что, пожалуй, надо учитывать оба случая. Создал тикет типа «usability problem» в нашем трекере: youtrack.jetbrains.com/issue/DBE-5537
                    • 0

                      Вот кстати ещё одна непонятная вещь — при нажатии на Jump to console вываливается длинный список консолей с названиями console_10, console_11… console_2, console_20, console 3… итд. Там кажется какие-то старые скрипты, которые я когда-то выполнял. И хочется этот список как-то очистить, оставив только 1 default-ную консоль, но непонятно как.
                      п.с. кстати список не растягивается в ширину — поэтому вместо Default-ная консоль там называется console (De… — что также не добавляет понятности.

                      • +1
                        Очистить это список можно удалив консоли :) Это — просто файлы, которые лежат в Scratches and Consoles и проассоциированы с конкретным датасорсом. Про ширину принято.
                        • 0

                          Меня смущает то что эти консоли плодятся сами по себе. Я их явно не создавал, не сохранял, а они есть.

                          • 0
                            Сохранять ничего не надо, это все делается автоматом. Насчет «не создавал» позволю себе усомниться :)

                            Можно попробовать разобраться, как они создаются. При написании запроса вы всегда используете существующую консоль? А при запуске скриптов?
                  • 0

                    Отлично. Очень прилично получается.

                    • 0
                      Спасибо! Стараемся.
                    • 0
                      Спасибо за Exasol. Я лично не считаю, что их родной клиент так уж плох, но хорошо иметь выбор.
                      • 0
                        Спасибо. Жаль только — за год столько улучшений, но при этом форматирование кода вообще не меняется, настроек мало, текущее форматирование вырвиглазное. Планируется ли работа в этом направлении?
                        • 0
                          Вы правы. Сейчас эта подсистема у нас заморожена. Мы планируем разморозить её в будущем году :)
                          • 0
                            Будет круто, если вы кинете ссылку на тикет, который бы вам больше всего хотелось увидеть сделанным в подсистеме форматирования SQL кода.

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

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