Сегодня мы представляем DataGrip 2021.1 — первый крупный релиз продукта в этом году и, возможно, самый значимый за всю его историю. Надеемся, что версия 2021.1 решит проблемы, с которыми вы сталкивались раньше, или вы откроете для себя какую-нибудь очень полезную новую возможность. А может быть, и то, и другое. Давайте приступим!
Функциональность доступна для PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server и Sybase.
Мы добавили интерфейс для изменения прав доступа при редактировании объектов.
В окне Modify user (вы можете открыть его из проводника баз данных для любого пользователя при помощи команды Cmd/Ctrl+F6) появился интерфейс для назначения объектам прав доступа.
Это решение будет удобно для всех, кто предпочел бы генерировать простые операторы прямо из проводника баз данных. Обычные шаблоны Live Templates покрывают различные сценариев, где необходимо быстро составить простой запрос. Однако когда вы уже находитесь в контексте проводника баз данных и сконцентрировались на необходимом объекте, хотелось бы иметь более простой способ генерации запросов для этого объекта.
Многие инструменты также используют подобный механизм, сокращая таким образом пользователям количество рутины, а значит, для многих из них он окажется вполне привычным.
Вот короткое видео о том, как это работает:
Каждый из этих фрагментов кода является шаблоном Live Template, однако их особенность в том, что они могут быть сгенерированы в контексте выбранного объекта. К примеру, рассмотрим шаблон Select first N rows from a table.
Откройте настройки Live Templates и найдите нужный шаблон:
Select first N rows from a table выглядит как обычный шаблон (и может быть использован как таковой). Синтаксис шаблона подходит не для всех баз данных, потому к нему применяется соответсвующий диалект. Основное отличие, позволяющее применить этот шаблон в проводнике баз данных, — выражение dbObjectName, используемое для переменной $table$:
Вы можете добавить собственный шаблон или же выбрать из имеющихся:
Зайдите в Settings/Preferences | Database | General и выберите между генерацией скрипта в текущую консоль и в новую консоль.
Мы добавили важнейшую функциональность для работы с MongoDB: теперь вы можете редактировать данные в коллекциях MongoDB. Также доступен предпросмотр запросов.
Чтобы сделать редактирование более гибким, мы добавили возможность изменять тип полей прямо из интерфейса. Вы можете сделать это через контекстное меню поля либо в редакторе значений:
Мы улучшили сортировку данных:
ORDER BY
работает аналогично полю WHERE
(которое раньше называлось Filter): укажите грамматически верное предложение, и оно применится к запросу таблицы. Если вы хотите использовать сортировку на стороне клиента (когда DataGrip не выполняет запросы заново, а вместо этого сортирует данные на текущей странице), уберите галочку для опции Sort via ORDER BY:
Также можно открывать таблицы с заранее заданной сортировкой на основе числового первичного ключа. Соответствующие настройки вы найдете в Settings/Preferences | Database | Data Views.
Мы обновили панель инструментов в редакторе данных. Кнопки Roll-back и Commit больше не отображаются в режиме автоматических транзакций. И мы добавили две новые кнопки — Revert changes и Find.
В Settings/Preferences | Database | Data Views теперь можно настроить транспонирование результатов, состоящих из одной строки.
Мы упростили навигацию и избавились от следующих настроек:
Если вы никогда не меняли эти настройки и значения для всех флажков у вас проставлены по умолчанию, версия 2021.1 все равно найдет чем вас удивить: действие Go to declaration (Ctrl/Cmd+B), запущенное для объекта в SQL, теперь открывает DDL, а не проводник базы данных.
Также мы ввели сочетание клавиш для действия Select in database tree — Alt+Shift+B для Windows/Linux и Opt+Shift+B для macOS.
Это изменение необходимо для упрощения логики: каждое действие должно выполнять навигацию ровно так, как вы ожидаете.
Если у вас есть курсор на объекте:
Поскольку это может сломать некоторые наработанные пользователями привычки, мы также даем возможность вернуть предыдущую схему. Несколько советов:
database.legacy.navigate.to.code.from.tree
. По нашим данным этим пользуются немногие пользователи. Также советуем использовать для открытия DDL объектов горячие клавиши. Если какие-либо сценарии использования не покрываются нашей новой моделью, пожалуйста, сообщите нам.
Мы поддерживаем интерактивную аутентификацию Azure Active Directory. Если она включена, браузер будет открываться автоматически и предлагать вам авторизоваться.
В новой версии DataGrip пользователям доступен JDBC-драйвер Redshift 2.x. Главным улучшением здесь является возможность отменять запросы.
В прошлом релизе у нас появилась поддержка диалекта Google BigQuery. В этом релизе мы расширили ее: интроспекция баз данных и генерация кода стали работать лучше и теперь не зависят от функциональности JDBC-драйвера.
Если вы пользуетесь скриптами CockroachDB или пишите SQL-запросы к этой базе данных, теперь ваш код будет подсвечиваться по всем правилам, а ошибки будут показаны еще до запуска запроса. Это наш первый шаг в сторону полной поддержки CockroachDB, которая будет реализована в одном из будущих релизов.
Пользоваться окном соединения стало удобнее.
Поле для ссылки теперь можно расширить — это упрощает работу с длинными ссылками.
Возможность копировать и вставлять источники данных появилась давно. Но начиная с 2021.1 вы можете копировать, вырезать и вставлять источники данных при помощи всем известных сочетаний клавиш Ctrl/Cmd+C/V/X.
Мы изменили стандартный интерфейс проводника баз данных: вторичные объекты теперь можно просмотреть в отдельной папке. В основном люди работают с таблицами, представлениями и процедурами. Что касается пользователей, ролей, табличных пространств, оберток сторонних данных и многих других типов объектов — их пользователи просматривают довольно редко. Эти вторичные объекты теперь размещены в двух папках — Server Objects и Database Objects.
Если вы хотите вернуть старый интерфейс, нажмите на иконку шестеренки и выберите Group Database and Schemas.
Если вы используете Oracle, у вас есть возможность показывать автогенерируемые объекты в проводнике либо скрыть их. Это распространяется на следующие объекты:
Теперь DataGrip интроспектирует функции, модули и виртуальные колонки в SQLite.
В 2021.1 добавлять источники данных для не поддерживаемых нами баз данных стало проще. Теперь вам доступны JDBC-драйверы для AWS Athena, Informix, Presto, SAP HANA, Google Cloud Spanner и др. Их вы найдете в секции Other списка баз данных.
Дополнительные улучшения:
Обратите внимание, что поддержка этих баз данных — ограниченная. В основном это обусловлено возможностями JDBC-драйвера и поддержкой диалекта SQL:2016 в SQL-редакторе DataGrip.
Для неподдерживаемых баз данных появился новый параметр настроек. При работе с такими базами данных в DataGrip вам нужно использовать либо диалект SQL:2016, либо Generic. Generic практически идентичен SQL:2016. Отличие лишь в том, что при использовании Generic DataGrip не подсвечивает найденные ошибки.
Эти настройки вы найдете в Settings/Preferences | Database | General | Split a script for execution in Generic and ANSI SQL dialects. Вы можете выбрать из следующих значений:
Некоторые из проблем, которые мы решили:
Инспекция, которая указывает на неоднозначные названия колонок, стала еще умнее и теперь учитывает любые колонки внутри обычных табличных выражений:
Неквалифицированные системные функции и процедуры теперь не подсвечиваются как ошибки. Также для них теперь работает навигация и автодополнение.
Thanks to the IntelliJ Platform, DataGrip now has support for the newline-delimited JSON Lines format used for working with structured data and logs. IDE распознает типы файлов .jsonl, .jslines, .ldjson и .ndjson.
Новые настройки типографики позволяют подобрать стили шрифтов. В версии 2021.1 можно настроить толщину обычных и жирных шрифтов в меню Settings/Preferences | Editor | Fonts.
Копируя бинарные данные, которые не были полностью загружены, вы увидите такое предупреждение:
Если вы не хотите, чтобы ваши данные обрезались, увеличьте значение в Settings/Preferences | Database | Data Views | Maximum number of bytes loaded per value.
При экспорте в Excel запрос будет включен в файл и размещен на отдельном листе.
Импортируя файл CSV, вы теперь можете указать, что первая строка содержит заголовки, при помощи контекстного меню:
Теперь вы можете включать папки в проект, просто перетаскивая их мышью.
Если редактор разделен вертикально на несколько вкладок, вы можете расширить окно редактора для любой из вкладок, кликнув по ней дважды. Чтобы вернуть окно в прежнее состояние, снова нажмите по нему дважды.
Некоторое время назад мы ввели сокращенные названия вкладок. Не всем пользователям это понравилось, поэтому теперь вы можете настроить этот аспект так, как вам нравится.