Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Привет!
Сегодня мы выпустили 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
Этого нам не хватало для полноценной поддержки Монги, но теперь все на месте: вы можете редактировать данные а апдейт-запрос просматривать до того, как данные отправятся в базу.
<img src="https://habrastorage.org/webt/1t/ux/8y/1tux8yvfyrs2eiha3byoj0ss2tu.png" />
Еще можно менять тип ячейки: из контекстного меню или панели инструментов при просмотре больших значений.
Сортировка
Сортировка стала более удобной:
Мы добавили поле ORDER BY, а <Filter> переименовали в 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