Теперь можно писать SQL в MongoDB. Мы написали транслятор SQL в JavaScript.
Работают только запросы SELECT и предложения JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, OFFSET. Подробнее обо всем, что мы поддержали, читайте здесь.
В контекстном меню есть две опции: Copy JS script to clipboard и Show JS Script. Последняя откроет окно с JS-запросом, который мы отправим на сервер. Здесь же можно его отредактировать и запустить.
Наша семья растет: мы поддержали Couchbase! Важно отметить, что DataGrip работает с Couchbase Query, а не с Couchbase Analytics.
Об этом нас давно просили: теперь к базе данных 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 для нескольких строк.
В CSV-форматах появилась новая опция: never quote values.
Интроспекция — это процесс сбора информации о базе данных. Эту информацию DataGrip хранит у себя, чтобы помогать вам навигироваться по базе, искать объекты, дополнять код.
Иногда при интроспекции обнаруживаются разные проблемы. Мы не всегда можем их воспроизвести. Поэтому мы придумали механизм сбора данных, которые пригодятся, если вы пишете нам в поддержку или трекер.
Diagnostic refresh запустит интроспекцию, соберет нужную информацию и запишет ее в файл, который откроется в файловом менеджере. Он поможет нам понять, что происходит.
Prepare introspector diagnostic собирает всю возможную информацию, не перезапуская интроспекцию. Результат работы этого действия присылайте, если что-то устарело или не подгрузилось.
DataGrip теперь знает о правах доступа и показывает их в сгенерированном DDL для объекта.
Если вы изменили DDL объектов, но ещё не успели отправить свои изменения в базу, эти объекты будут подсвечены в дереве. Раньше измененные объекты показывались только в окне Database Changes.
DataGrip генерирует DDL таблицы, включая TABLESPACE и INDEX ACCESS METHOD.
В дереве базы данных Greenplum стало больше отображаемых объектов: мы добавили коллации, материализованные представления, внешние таблицы, обертки сторонних данных, сторонние сервера, сторонние таблицы и сопоставления пользователей.
Перегрузки внутри одного пакета раньше отображались как один объект. Теперь — как несколько. Число в квадратных скобках — это индекс процедуры в базе данных.
Теперь вы можете форматировать запросы, работая с базами, которые мы не поддерживаем.
Внутристрочное переименование теперь предлагает опции: переименовать в комментариях, строках и в текстовых вхождениях.
Alt+Enter на Windows/Linux и Opt+Enter на macOS теперь сразу предлагают список исправлений, без вложенного меню.
Если возникает конфликт вызова перегруженной процедуры, DataGrip предупредит об этом.
Теперь можно указать капитализацию отдельно для встроенных типов, пользовательских типов и встроенных функций.
Запуск скриптов из файлов стал удобнее:
DataGrip предупредит, если внутри скрипта меняется контекст, то есть используется USE или SET search_path.
Если вы выбрали накатить скрипт на источник данных, то DataGrip выберет схему по умолчанию. Теперь она отобразится рядом серым цветом.
Маленькая кнопка с часами откроет список для выбора баз и схем, на которые вы накатывали скрипты раньше.
Если для вас важна ширина экрана, вывод консоли можно открывать в новой вкладке окна Services по умолчанию. Таким образом, вся ширина экрана будет задействована для результата запроса или текстового вывода. Включается это в Settings/Preferences | Database | General | Open new services tab for sessions.
В прошлом году мы сделали так, что комментарии перед запросом становятся именами вкладок. Это не работало в SQL Server, если запускать сразу несколько запросов, потому что SQL Server обрабатывает несколько запросов как один. Теперь все работает как надо.
В планировщике теперь появляются подсказки, которые предлагают создать индекс для улучшения производительности запроса.
Если вы открываете DDL таблицы, а кэшированная версия DataGrip успела устареть, вас об этом предупредят. Раньше это работало только для объектов с исходным кодом: процедур, функций, представлений.
Если объект был удален, пока вы его редактировали, появится сообщение об этом.
Например, вы вносили изменения в процедуру, а в это время от нее кто-то избавился.
DataGrip предложит три варианта:
Действия Submit, Rollback и Show Changes теперь можно запускать для объекта из любого контекста, в том числе проводника. Например, у вас висят изменения для некоторого количества процедур. Можно выделить несколько из них в дереве и только их исходники отправить в базу. А остальные, например, откатить. Раньше эти операции делались только из окна Database Changes.
Теперь можно переносить вкладки в разные области экрана. Получается, есть и полностью независимый сплит-режим: если выбрать режим In-Editor Results, у каждой вкладки будет свой результат запроса.
В отличие от других наших IDE, в DataGrip никогда не было начального экрана. При открытии DataGrip 2020.3 вы, как обычно, увидите последний открытый проект (или проект по умолчанию). Но если закрыть все проекты, появится начальный экран. Оттуда можно перейти к любому проекту, настройкам IDE и к управлению плагинами.
В настройках плагинов (Settings | Plugins) теперь можно включать и отключать плагины только для текущего проекта. Плагин будет загружен автоматически при открытии первого проекта, в котором он используется. Соответственно, при закрытии последнего такого проекта плагин будет удален.
Если выбрать Sync with OS в настройках Settings/Preferences | Appearance & Behavior | Appearance | Theme, то IDE будет автоматически синхронизировать цветовую cхему с настройками операционной системы.
Некоторым людям сложно читать условные обозначения клавиш на macOS. Теперь можно дернуть ключ ide.macos.disable.native.shortcut.symbols в реестре, и вместо значков будут слова. Для вызова реестра используйте Find Action (Cmd+Shift+A) и введите там «Registry».
Теперь по клику на файл его содержимое можно увидеть во вкладке предпросмотра. Для этого в настройках панели 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, которая открывает все возможные узлы до последнего уровня. Это может пригодиться при быстром поиске, когда вы просто печатаете имя объекта, находясь в дереве. Такой поиск ищет только по открытым узлам. Для удобства вы также можете воспользоваться сочетанием клавиш Cmd+Знак плюса на macOS или Ctrl+Numpad+Знак плюса на Windows и Linux.