Pull to refresh
0
JetBrains
Делаем эффективные инструменты для разработчиков

DataGrip 2019.3: MongoDB, дебаггер, модный прогресс-бар, много новых инспекций

Reading time4 min
Views11K
Привет! Как водится, три раза в году мы рассказываем о том, над чем работали. Это статья о том, что нового в DataGrip 2019.3, а значит и во всех IDE от JetBrains с поддержкой баз данных.



Поддержка MongoDB


Это будет наша первая публикация на Хабре, в комментариях к которой не спросят: «А когда планируется поддержка Монги?»

Встречайте! Что работает в этой версии:

Интроспекция: В проводнике базы данных отображаются коллекции и поля. Мы анализируем первые 10 документов из каждой коллекции, чтобы иметь представление о ее полях.

Если вы хотите увеличить это число, укажите его в JDBC-параметре fetch_documents_for_metainfo на вкладке Advanced в свойствах источника данных.



Просмотр данных: Просматривайте коллекции в табличном виде по страницам. Можно сортировать по значениям и использовать фильтр.



Древовидный просмотр: Специально для MongoDB мы сделали древовидный просмотр данных. Чтобы его включить, нажмите на шестеренку, затем View as… | Tree. Еще такой просмотр работает для массивов PostgreSQL, и мы планируем сделать так, чтобы в виде дерева можно было смотреть JSON- и XML-поля.



Консоль запросов: Сейчас нет поддержки при написании кода, но запросы работают. Для того чтобы запустить запрос, поставьте на него каретку и нажмите Ctrl/Cmd+Enter или кнопку Run на панели инструментов.

Если вы работаете в IDE с поддержкой JavaScript, запросы будут подсвечены. Подсветку в DataGrip добавим позже.



Отладчик PL/SQL для Oracle


Первая версия давно ожидаемого отладчика для Oracle. Сейчас он работает с процедурами, функциями, пакетами, триггерами и анонимными блоками.

Не забудьте, что объект должен быть скомпилирован для отладки. Чтобы это сделать, используйте контекстное меню: Database tools | Recompile.



Отметьте чекбокс With “debug”. Если процедура уже скомпилирована для отладки, на ее иконке есть зеленый жучок.



Чтобы запустить отладчик в консоли, нажмите кнопку Debug на панели инструментов.



Подробности об отладчике — у нас в документации (на английском). Мнения, комментарии, пожелания пишите, пожалуйста, сюда.

Работа с исходниками


Сравнение кода процедур


Две процедуры можно сравнить, выделив их и нажав Ctrl/Cmd+D. Раньше сравнивались только сигнатуры, теперь — и исходники.



Трехпанельное слияние


Когда вы обновляете исходный код объекта, DataGrip предупреждает, если за это время код изменился в базе. Теперь для решения конфликтов вам предложат слияние при помощи трех панелей: слева вы увидите вашу версию, справа — то, что пришло из базы, а в середине — результат их слияния.



Чтобы быть уверенным, что вы не перепишете чужой код, проверьте, что настройка Warn if editing outdated DDL включена в свойствах источника данных.

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


В исходном коде объектов теперь работает помощь при написании кода. Например, можно раскрыть звездочку.



Красивые исходники в PostgreSQL


Если настройка pretty-printed отключена, PostgreSQL отдает исходники с большим количеством избыточных скобок:



Мы решили включить ее по умолчанию. В нашем примере скобок не осталось :)



Но обратим внимание на то, что PostgreSQL пишет в своей документации:

Код в формате pretty-printed лучше читается, но формат по умолчанию, скорее всего, будет лучше понят будущими версиями PostgreSQL. Поэтому мы советуем не использовать pretty-printed код для дампов.

The pretty-printed format is more readable, but the default format is more likely to be interpreted the same way by future versions of PostgreSQL; avoid using pretty-printed output for dump purposes.


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


Прогресс выполнения в редакторе


Пользователи жаловались, что не всегда понятно — запрос все еще выполняется или уже завершен. Мы добавили крутящуюся иконку на панель слева и таймер в текстовый редактор.



Флейм-чарт для планировщика


Это новый тип визуализации данных от планировщика. Чтобы открыть флейм-чарт (или флейм-граф, кому как нравится), нажмите кнопку слева:



Выглядит так:



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


Инспекции

DataGrip предупредит, если вы:

… используете оператор COALESCE без надобности: например, если первый аргумент никогда не бывает NULL. Вам предложат удалить ненужный код.



… вставляете NULL в столбец, для которого это запрещено.



… не перечислили все столбцы в предложении INSERT.



… используете оператор «равно» для сравнения с NULL. Это сравнение ложно, потому что NULL это «неизвестно». Так как два значения, которые «неизвестны», сравнить нельзя, надо использовать специальный оператор IS NULL.



… используете предложение ORDER BY в подзапросе. Эта инспекция работает только в SQL Server.



… используете одновременно TOP и OFFSET. Это тоже инспекция для SQL Server.



Конвертация конструкций

Сравнение с AND можно конвертировать в BETWEEN, и наоборот.



JOIN ON можно конвертировать в JOIN USING, и наоборот.



Текстовый редактор

Новое действие: сортировка строк по алфавиту. Может быть полезно при работе в CSV-файлами или поиске дубликатов в списке значений. Напоминаем, что вызывать любое действие можно по Ctrl/Cmd+Shift+A.



Сделали поиск по выделенному фрагменту кода. Сначала выделите область для поиска, потом нажмите Ctrl/Cmd+F. Если хотите искать по всему файлу выделенный фрагмент, нажмите сочетание клавиш еще раз.



Фильтрация объектов

Если используете фильтр объектов для проводника, например такой:



…то объекты, которые скрыты из проводника, будут считаться неизвестными для редактора кода. То есть мы предполагаем, что, если вы скрыли объекты из проводника, то и работать из SQL вы с ними не хотите.



Генерация кода

В меню Generate, которое вызывается по Alt+Ins/Cmd+N, много новых объектов: материализованные представления, коллации, перечисления и не только.



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


Теперь, если в результате есть столбцы с одинаковыми именами, мы показываем, из какой таблицы они взяты. Это удобно еще и потому, что эти имена используются при экспорте: например, если вы создаете новую таблицу из результата, у вас не будет конфликта имен.



Действие Modify Table работает из редактора данных. Например, если вы работаете с данными таблицы и решили добавить в нее столбец, теперь это сделать проще: нажмите Ctrl/Cmd+F6 и редактируйте таблицу.



И еще одна маленькая фича


Текст ошибки соединения можно погуглить, нажав на кнопку:



На этом всё!

Скачать триал на месяц
Твитер, который мы читаем
— Почта, которую мы читаем: datagrip@jetbrains.com

Как всегда, ждем комментариев о том, что понравилось, и о самых важных для вас тикетах в Ютреке :)

Команда DataGrip
Tags:
Hubs:
Total votes 27: ↑26 and ↓1+32
Comments28

Articles

Information

Website
jetbrains.com
Registered
Founded
Employees
1,001–5,000 employees
Location
Чехия