123.7
Rating
JetBrains
Делаем эффективные инструменты для разработчиков

DataGrip 2020.3: SQL для Монги, новые форматы экспорта, интроспекция прав доступа и другое

JetBrains corporate blogMySQLPostgreSQLSQLDatabase Administration
Привет! Очередной длинный пост о том, что мы сделали за последние четыре месяца. Как всегда, мы говорим DataGrip, а подразумеваем все остальные наши IDE. В том числе и WebStorm, SQL-плагин к которому теперь можно докупить.




Самое важное:


— SQL для MongoDB
— Поддержка Couchbase
— Аутентификация через Azure AD
— Улучшения в редакторе больших значений
— Открытие таблиц в транспонированном виде
— Новые форматы экспорта
— Интроспекция прав доступа
— Форматирование диалекта Generic
— Улучшения в конфигурациях запуска
— Перетаскивание вкладок

SQL для MongoDB


Теперь можно писать SQL в MongoDB. Мы написали транслятор SQL в JavaScript.



Работают только запросы SELECT и предложения JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, OFFSET. Полный пост обо всём, что мы поддержали, читайте здесь.

В контекстном меню есть две опции: Copy JS script to clipboard и Show JS Script. Последняя откроет окно с JS-запросом, который мы отправим на сервер. Здесь же можно его отредактировать и запустить.



Соединение


Поддержка Couchbase


Наша семья растёт: мы поддержали Couchbase! Важно отметить, что DataGrip работает с Couchbase Query, а не с Couchbase Analytics.



Аутентификация через Azure AD


Об этом нас давно просили: к базе данных Azure SQL теперь можно подсоединиться через Active Directory.



Рабочая папка


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



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


Редактор больших значений


Мы сделали этот редактор в предыдущей версии, а сейчас улучшили несколько вещей.

Форматированное значение


Если в ячейке хранится однострочный XML или JSON, в редакторе значений он будет показан в отформатированном виде. Причем вы можете отредактировать значение в удобном виде, а сохранится оно всё равно как одна строка.



Расположение снизу


Если вам важна ширина экрана, передвиньте редактор вниз.



Картинки


Ещё в этом же редакторе отображаются картинки.



Открытие таблиц в транспонированном виде


Теперь все таблицы можно открывать в транспонированном виде по умолчанию. Полезно, если в таблицах много столбцов.



Выделение в редакторе


В редакторе всегда работало умное выделение: нажимаете Ctrl+W на Windows/Linux или Opt+Up на macOS и сначала выделяется текущая строка, потом текущий столбец, потом вся таблица. Теперь можно двигаться и в обратном порядке: при помощи Ctrl+Shift+W на Windows/Linux и Opt+Down на macOS.



Импорт/экспорт


Новые форматы


Сделали два новых формата: One-row и SQL-Insert-Multirow.



One-Row копирует выделенные значения в одну строку через запятую. Это удобно, когда значения столбца нужно вставить в оператор IN.



SQL-Insert-Multirow сгенерирует один INSERT для нескольких строк. В некоторых базах, например MySQL и PostgreSQL, это работает.



Не ставить кавычки


Новая опция в CSV форматах: never quote values.



Интроспекция


Сбор диагностической информации


Интроспекция — это процесс сбора информации о базе данных. Эту информацию DataGrip хранит у себя, чтобы помогать вам навигироваться по базе, искать объекты, дополнять код.

Иногда при интроспекции обнаруживаются разные проблемы. Мы не всегда можем их воспроизвести. Поэтому мы придумали механизм сбора данных, которые пригодятся, если вы пишете нам в поддержку или трекер.

Diagnostic refresh запустит интроспекцию, соберет нужную информацию и запишет её в файл, который откроется в файловом менеджере. Он пригодится нам, чтобы понять, что происходит.

Prepare introspector diagnostic собирает всю возможную информацию, не перезапуская интроспекцию. Результат работы этого действия присылайте, если что-то устарело или не подгрузилось.



Права доступа


DataGrip теперь знает о правах доступа и показывает их в сгенерированном DDL для объекта.


Изменённые объекты в проводнике базы данных


Если вы изменили DDL объектов, но ещё не успели отправить свои изменения в базу, эти объекты будут подсвечены в дереве. Раньше изменённые объекты показывались только в окне Database Changes.



[PostgreSQL] Больше свойств таблиц


DataGrip генерирует DDL таблицы, включая TABLESPACE и INDEX ACCESS METHOD.



[Greenplum] Новые объекты


В дереве базы данных Greenplum стало больше отображаемых объектов: мы добавили коллации, материализованные представления, внешние таблицы, обёртки сторонних данных, сторонние сервера, сторонние таблицы и сопоставления пользователей.



[Oracle] Корректное отображение перегрузок


Перегрузки внутри одного пакета раньше отображались как один объект. Теперь — как несколько. Число в квадратных скобках — это индекс процедуры в базе данных.



Помощь в написании кода


Форматирование диалекта Generic


Теперь вы можете форматировать запросы, работая с базами, которые мы не поддерживаем.



Новый интерфейс переименования


Внутристрочное переименование теперь предлагает опции: переименовать в комментариях, строках и в текстовых вхождениях. Текстовые вхождения — это обычный поиск по тексту в файлах, формат которых мы не подсвечиваем.



Исправление опечаток


Alt+Enter на Windows/Linux и Opt+Enter на macOSтеперь сразу предлагают список исправлений, без вложенного меню.



[Oracle] Конфликт вызовов


Если возникает конфликт вызова перегруженной процедуры, DataGrip предупредит об этом.



Новые настройки капитализации в форматировании


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



Запуск запросов


Конфигурации запуска


Запуск скриптов из файлов стал удобнее:

Смена контекста


DataGrip предупредит, если внутри скрипта меняется контекст, то есть используется USE или SET search_path.



Отображение контекста


Если вы выбрали накатить скрипт на источник данных, то DataGrip выберет схему по умолчанию. Теперь она отобразится рядом серым цветом.



История запуска


Маленькая кнопка с часами откроет список для выбора баз и схем, на которые вы накатывали скрипты раньше.



Вывод консоли в отдельной вкладке


Если для вас важна ширина экрана, вывод консоли можно открывать в новой вкладке окна Services по умолчанию. Таким образом, вся ширина экрана будет задействована для результата запроса или текстового вывода. Включается это в Settings/Preferences | Database | General | Open new services tab for sessions.



[SQL Server] Имена вкладок


В прошлом году мы сделали так, что комментарии перед запросом становятся именами вкладок. Это не работало в SQL Server, если запускать сразу несколько запросов, потому что SQL Server обрабатывает несколько запросов как один. Теперь работает как надо.



[SQL Server] Подсказки для создания индекса в планировщике


В планировщике теперь появляются подсказки, которые предлагают создать индекс для улучшения производительности запроса.



Редактирование DDL



Предупреждение о неактуальной структуре таблицы


Если вы открываете DDL таблицы, но кэшированная версия DataGrip успела устареть, вас об этом предупредят. Раньше это работало только для объектов с исходным кодом: процедур, функций, представлений.



Предупреждение, если объект удален


Если объект был удален, пока вы его редактировали, появится сообщение об этом. Например, вы вносили изменения в процедуру, а в это время её кто-то дропнул!



DataGrip предложит три варианта:

Revert local changes: выбирайте этот вариант, если вас устраивает, что процедура удалена. Редактор закроется.

Keep local changes: в этом варианте вы будете продолжать вносить изменения в процедуру, а при нажатии Submit она будет создана заново.

Restore in the database: то же самое, но DataGrip сразу же восстановит вариант процедуры, который был актуален на тот момент, когда вы ее открыли. Это нужно для того, чтобы правильно подсветить ваши текущие изменения при редактировании. После нажатия Submit результаты этого действия и Keep local changes будут одинаковы.

Действия по работе с исходниками


Действия Submit, Rollback и Show Changes теперь можно запускать для объекта из любого контекста, в том числе проводника. Например, у вас висят изменения для некоторого количества процедур. Можно выделить несколько из них в дереве и только их исходники отправить в базу. А остальные, например, откатить. Раньше эти операции делались только из окна Database Changes.



Общее


Перетаскивание вкладок


Теперь можно переносить вкладки в разные области экрана. Получается, есть и полностью независимый сплит-режим: если выбрать режим In-Editor Results, у каждой вкладки будет свой результат запроса.



Синхронизация темы с системными настройками


Если выбрать Sync with OS в настройках Settings/Preferences | Appearance & Behavior | Appearance | Theme, то IDE будет автоматически синхронизировать цветовую тему с настройками операционной системы.



Сочетания клавиш macOS словами


Некоторым людям сложно читать условные обозначения клавиш на macOS. Теперь можно дёрнуть ключ ide.macos.disable.native.shortcut.symbols в реестре, и вместо значков будут слова. Сработает для всех меню внутри IDE, кроме главного, в котором поменять что-то мы бессильны.



Вкладка предпросмотра


В настройках панели Files выберите Enable Preview Tab. Теперь по клику на файл его содержимое видно во вкладке предпросмотра. Если вы начинаете редактировать файл, эта вкладка превращается в обычную.



Простой калькулятор


Вычисляйте несложные штуки в окне Search Everywhere.



Ассоциации с файлами


С этой версии в настройках DataGrip можно указать, какие файлы IDE должна открывать по умолчанию. Настройка находится тут: Settings/Preferences | Settings | Editor | File Types | Associate file types with DataGrip.



Кстати, это могут быть не только файлы, связанные с базами данных. DataGrip — вполне подходящий редактор для JSON, HTML или MarkDown*!

*с плагином

Развернуть всё


Раньше в панелях Database и Files была только кнопка Collapse All, которая закрывает все узлы. Мы добавили кнопку Expand All, которая открывает все возможные узлы до последнего уровня. Может пригодится при быстром поиске, когда вы просто печатаете имя объекта, находясь в дереве. Такой поиск ищет только по открытым узлам.



Такой вышел релиз!

Скачать триал на месяц

Фидбек принимаем в комментариях к посту и здесь:

Трекер (это если точно нашли проблему)
Телеграм-канал
Твиттер
Почта

Команда DataGrip
Tags:SQLIntelliJJetBrainsPostgreSQLMongoDBSQL Serverбаза данныхIDEPyCharmPhpStormOracleMySQL
Hubs: JetBrains corporate blog MySQL PostgreSQL SQL Database Administration
+24
2.8k 14
Comments 23

Popular right now

Software Developer (WebTeam BackEnd & Infrastructure)
from 180,000 ₽JetBrainsСанкт-Петербург
Java Developer (GoLand)
from 200,000 ₽JetBrainsСанкт-Петербург
Senior Software Developer (New IDE platform)
from 250,000 ₽JetBrainsСанкт-Петербург

Top of the last 24 hours

Information

Founded
Location
Россия
Website
jetbrains.com
Employees
1,001–5,000 employees
Registered

Habr blog