Публикации и ответы на комментарии в блогах JetBrains не выходят на русском языке с 2022 года.
Приносим извинения за неудобства.
DataGrip 2021.1: Редактирование прав, контекстные шаблоны, предсказуемая навигация и не только
Вчера мы выпустили DataGrip 2021.1: наш самый мощный релиз за последние годы. Самое важное:
- Интерфейс для работы с правами доступа
- Контекстные шаблоны Live Templates
- Упрощенная навигация
- Легкое копирование источников данных
- Улучшенная сортировка
- Редактирование данных в MongoDB
- Поддержка Azure MFA
Редактирование прав
В окне редактирования объекта теперь можно изменять права на объект.
Также права можно добавлять и изменять в окне редактирования пользователя или роли. Напоминаю, что вызываются окна редактирования нажатием Cmd/Ctrl+F6.
Это работает в PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server и Sybase.
Контекстные шаблоны
Нас давно просили сделать «как у других»: чтобы для таблицы в проводнике можно было быстро сгенерировать простой запрос, например SELECT TOP 100 FROM %tableName%.
Мы всегда отвечали, что, как только вы научитесь пользоваться шаблонами кода Live Templates, ваша жизнь изменится навсегда и не надо будет тыкать мышкой во вложенные меню.
И это правда. Но бывает, что у пользователя открыт проводник и он находится в контексте нужного объекта. В таком случае сгенерировать запрос к этому объекту на месте будет проще, чем переключаться в консоль, а потом находить этот объект, используя автодополнение. К тому же, многие все еще часто пользуются мышкой :)
В итоге мы сделали новый вид шаблонов кода — контекстные шаблоны. Работают они так:
Посмотрим шаблон Select first N rows from a table. Найдите его в настройках:
Он выглядит как обычный шаблон, и его можно использовать в таком качестве. Но у переменной $table$ есть специальное выражение — dbObjectName(). Вы увидите это, нажав на Edit Variables. Так вот, именно это выражение делает шаблон контекстным, то есть значение в эту переменную можно подставить автоматически — кликнув на любой объект в проводнике базы данных.
Важно отметить, что синтаксис этого шаблона работает не во всех базах. В нижней части окна перечислены диалекты, для которых такой код можно сгенерировать.
В настройках можно выбрать, будет запрос генерироваться в новую консоль или в активную.
Редактор данных
Редактирование данных в MongoDB
Этого нам не хватало для полноценной поддержки Монги, но теперь все на месте: вы можете редактировать данные, а апдейт-запрос просматривать до того, как данные отправятся в базу.
Еще можно менять тип ячейки: из контекстного меню или панели инструментов при просмотре больших значений.
Сортировка
Сортировка стала более удобной:
- Мы добавили поле ORDER BY, а переименовали в WHERE. Впишите в ORDER BY условия сортировки, чтобы получился работающий запрос.
- По умолчанию сортировка не суммируется: каждый клик по новому столбцу сбрасывает сортировку по другим столбцам. Если хочется сортировать по нескольким столбцам сразу, используйте клик с зажатой клавишей Alt.
Если хотите отсортировать данные на стороне DataGrip, отключите Sort via ORDER BY. Конечно, в этом случае, сортируются данные только на текущей странице.
Теперь вы можете по умолчанию открывать таблицы отсортированными по числовому первичному ключу.
Панель инструментов
Мы немного обновили панель инструментов в редакторе данных: добавили кнопки Revert Changes и Find. Кнопки Rollback и Commit в режиме автоматического подтверждения транзакций скрываются.
Транспонирование однострочных результатов
Если в полученном результате одна строка, его удобно сразу смотреть в транспонированном виде. Мы сделали для этого настройку:
Навигация
Предсказуемые действия
Мы удалили эти настройки:
Если вы никогда не меняли их значения по умолчанию, то главное изменение в новой версии для вас такое: действие Go to declaration (Ctrl/Cmd+B) теперь открывает DDL этого объекта. Раньше оно подсвечивало объект в проводнике базы данных.
Для перемещения к объекту в проводнике мы представили новое сочетание клавиш: Alt+Shift+B для Windows/Linux и Opt+Shift+B для macOS.
Теперь нет сложной логики, и каждое нажатие горячих клавиш ведет в туда, куда вы ожидаете попасть:
- Ctrl/Cmd+B открывает DDL.
- F4 открывает данные.
- Alt/Opt+Shift+B подсвечивает объект в проводнике.
Удаление настроек всегда ломает привычки некоторому количеству людей. Мы постарались учесть это. Вот наши советы таким пользователям:
- Все сочетания клавиш можно менять. Если, например, вы не хотите отвыкать от того, что Ctrl/Cmd+B подсвечивает объект в проводнике, назначьте это сочетание клавиш действию Select in database tree.
- В то же время, если вам нравится, что внутри скрипта Ctrl/Cmd+B и Ctrl/Cmd+Click открывает определение CREATE, не убирайте эти сочетания с действия Go to declaration, если вы последовали предыдущему совету.
- Если вам нравилось, что при отключенной настройке Preview data editor over DDL editor двойной клик по таблице открывал DDL, это можно вернуть через ключ в реестре. Он называется database.legacy.navigate.to.code.from.tree. Но мы не советуем менять значения в реестре и надеемся, что те полпроцента людей, у которых эта галочка была снята, быстро привыкнут к новому поведению :)
Если мы про что-то забыли, пишите, пожалуйста, в комментах.
Вкладка Database
Тут мы ничего особо не сделали — просто переименовали вкладку Tables в Database. Этим мы напоминаем, что по сочетанию клавиш Cmd+O/Ctrl+N можно искать не только таблицы, но и процедуры, функции, схемы.
Соединение
Поддержка Azure MFA
Мы поддержали интерактивную аутентификацию через Azure Active Directory. Если она включена, при соединении у вас автоматически откроется браузер, где вы сможете завершить аутентификацию.
Версия 2.x драйвера для Redshift
Этот драйвер можно скачать в DataGrip, начиная с версии 2021.1. Главное изменение состоит в том, что теперь запросы можно останавливать.
Полная поддержка Google Big Query
Подсветку языка мы поддержали в предыдущей версии, а в этой добавили интроспекцию. То есть, информацию об объектах IDE берет не из драйвера, а выкачивает ее сама при помощи специальных запросов.
Поддержка диалекта CockroachDB
Теперь DataGrip правильно подсвечивает запросы и показывает ошибки в скриптах для CockroachDB. Соответствующую интроспекцию мы сделаем в одном из следующих релизов.
Улучшения в окне соединения
Сделали это окно чуть более дружелюбным:
- Источники данных и драйверы разделены на две вкладки.
- На странице каждого драйвера появилась кнопка Create data source.
- Кнопка Test Connection переехала вниз — теперь ее видно из всех вкладок, а не только из General и SSH/SSL.
- Для источников данных на основе файлов (так называемых DDL Data Sources) теперь можно явно задать диалект.
- Поле JDBC URL расширяется, потому что адреса для подключения бывают очень длинными.
Проводник базы данных
Легкое копирование источников данных
Возможность копировать и вставлять источники данных мы сделали давно. Но с этого релиза вы можете использовать самые знаменитые сочетания клавиш в мире — Ctrl/Cmd+C/V/X.
- Напоминаем, что, когда вы копируете источник данных, в буфер обмена сохраняется XML. Его можно послать коллеге в мессенджере, а он вставит его в свою IDE — все сработает.
- Если копирование и вставка происходит в одном проекте, вам не понадобится заново вводить пароль.
- Источник данных можно не только копировать, но и вырезать. Вырезание отменяется при помощи Ctrl/Cmd+Z.
Новый интерфейс
Объекты второстепенной важности (роли, пространства имен, внешние источники и др.) мы поместили в папки Server Objects и Database Objects.
Если хотите, чтобы было как раньше, включите настройку Group Database and Schemas.
[Oracle] Скрытие сгенерированных объектов
Если отключить Show generated objects, то из проводника пропадут:
- Таблицы материализованных представлений
- Логи материализованных представлений
- Вторичные таблицы
[SQLite] Новые типы объектов
В SQLite теперь отображаются функции, модули и виртуальные столбцы.
Улучшения для неподдерживаемых баз
Шаблоны для источников данных
Начиная с этой версии стало легче создавать источники данных для баз, которые мы не поддерживаем. Вам не придется самим качать драйвер — мы предложим сделать это за вас. Драйверы мы кладем к себе на сервер и обновляем, когда нужно. При создании источников данных ищите шаблоны в секции Other.
Еще раз напомним, что поддержка для таких источников данных — базовая. Скрипты подсвечиваются на основе стандарта SQL:2016, а информация об объектах берется из драйвера.
Написание запросов
Инспекция про избыточные имена в CTE
Если запрос не запустится из-за избыточных имен в общем табличном выражении, DataGrip сообщит об этом.
[SQL Server] Системные функции можно использовать без имени схемы
Использовать системные функции без имени схемы можно было и раньше, но DataGrip считал это ошибкой :) Теперь они и подсвечиваются правильно, и для них работает навигация с автодополнение.
Поддержка JSON Lines
Формат JSON Lines используется для хранения данных и логов. И новая версия правильно подсвечивает файлы этого формата.
Толщина шрифта
Теперь вы можете настраивать толщину шрифта.
Импорт / Экспорт
Незагруженные данные
Если бинарные данные не были загружены полностью, вы увидите такое сообщение:
Настройка, которая определяет, какое количество данных DataGrip загружает по умолчанию, находится здесь: Settings/Preferences | Database | Data Views | Maximum number of bytes loaded per value.
Запрос в файле Excel
Когда вы экспортируете данные в Excel, на отдельном листе сохраняется изначальный запрос.
‘First row is header’ в контекстном меню импорта
Раньше было неудобно находить эту настройку, поэтому мы добавили ее в контекстное меню заголовков.
Интерфейс
Прикрепление папки при помощи drag-n-drop
Прикрепить папку, то есть открыть ее в панели Files, теперь можно, перетащив ее.
Открытие вкладок в режиме разделенного редактора
Если редактор разделен вертикально на несколько вкладок, вы можете расширить окно редактора для любой из вкладок, кликнув по ней дважды. Чтобы вернуться в прежнее состояние, снова кликните дважды по окну.
Длинные названия вкладок
В одной из предыдущих версий мы укоротили названия вкладок. Это не всем понравилось, поэтому мы сделали настройку:
На этом все!
Фидбек принимаем в комментариях к посту и здесь:
— Трекер (это если точно нашли проблему)
— Телеграм-канал
— Твиттер
— Почта
Ваша команда DataGrip
The Drive to Develop
Оригинал статьи опубликован на habr.com:
https://habr.com/ru/company/JetBrains/blog/550250/