Привет!
Сегодня мы выпустили 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="http://personeltest.ru/aways/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