DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации

в 14:13, , рубрики: DataGrip, docker, intellij idea, Microsoft SQL Server, mysql, postgresql, sql, sql server, базы данных, Блог компании JetBrains

Привет! Рассказываем о том, что мы сделали в DataGrip за четыре месяца. Если вы используете поддержку баз данных в других наших IDE, этот пост для вас тоже.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 1

Окно инструментов Services

У IDE на платформе IntelliJ появилось новое окно инструментов: Services. В DataGrip здесь отображены соединения.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 2

Каждый узел дерева, будь то служба, источник данных, соединение, можно открыть в отдельной вкладке: нажмите Show in New Tab на панели инструментов. Или используйте drag-and-drop. Если на соединении горит зеленый кружок, это значит, что оно активно. Закрыть соединение можно из контекстного меню.

Результаты запросов прикреплены к соответствующим соединениям. Если хотите вернуть вид “как раньше”, отключите дерево служб в настройках отображения, нажав на иконку шестеренки.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 3

Таймер запроса

В окне Services добавили возможность смотреть, сколько времени занимает запрос: часы тикают справа от консоли, из которой он запущен.

Docker

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

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 4

Сочетание клавиш для отображения/скрытия окна Services — Alt/Cmd+8.

Поиск по данным

Ищите данные, даже если не помните, где они хранятся. Выделите источник данных, группу источников или, наоборот, только отдельные таблицы, и нажмите Ctrl/Cmd+Alt+Shift+F. Или выберите Full-text search из контекстного меню.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 5

В диалоговом окне введите, что искать. Слева будет список источников данных. В нижней части окна показаны запросы, которые DataGrip выполнит для поиска.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 6

Результаты выглядят так:

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 7

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

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 8

Детали:
– В PostgreSQL, MySQL и MariaDB можно искать только по проиндексированным столбцам. Для этого выберите ‘Only columns with full-text search indexes’ в списке ‘Search in’.
В PostgreSQL будет такой запрос:where col @@ plainto_tsquery('query')
В MySQL и MariaDB такой:where match(col) against ('query' in natural language mode)
– В Oracle, DataGrip будет использовать индексы context, ctxrule, ctxcat, если они есть.
– В SQL Server, если построены полнотекстовые индексы, DataGrip генерирует запрос с предложением `WHERE CONTAINS(col, N'text')`.
– Поиск ищет в столбцах, для которых не поддерживается LIKE. Например, JSON-столбцы будут предварительно сконвертированы в строку.
– Для Cassandra DataGrip запускает несколько запросов для одной таблицы, потому что оператор OR не поддерживается.

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

Быстрое изменение размера страницы

Меняйте размер страницы в редакторе данных, не ходя в настройки.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 9

Имена вкладок

Теперь вы сами можете называть вкладки результатов: напишите имя в комментарии перед запросом.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 10

Если вам не нравится, что любой предшествующий комментарий становится именем, укажите слово, после которого будет идти строка для заголовка. Это делается в соответствующих настройках.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 11

Проводник базы данных

Быстрый бэкап таблицы

Копировать таблицы при помощи drag-and-drop можно давно, но раньше это не работало, если перетаскивать в ту же схему. Теперь работает! Удобно, если делаете бэкап данных перед важной операцией.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 12

Быстрое создание группы

Создавайте группы источников данных, перетаскивая один источник на другой. Если нужно переместить источник данных в существующую группу, это тоже делается мышкой. Любителям клавиатуры напоминаем, что для этого есть клавиша F6.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 13

Принудительное обновление

Новое действие Force Refresh подгрузит информацию обо всех объектах базы, предварительно очистив кэш. Может быть полезно, если что-то “залипло” в памяти и вы не видите актуальной картины.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 14

Активные соединения

С этой версии маленький зеленый кружок на иконке источника данных означает, что соединение с ним активно.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 15

Комментарии к таблицам

После включения View | Appearance | Descriptions in Tree Views комментарии к таблицам отобразятся в проводнике.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 16

Фильтрация по источникам данных

Если у вас много похожих баз данных, было неудобно искать объекты: например, если вы ищете таблицу, а таких таблиц у вас десять, они все показывались в выдаче.
Сейчас можно указывать, где искать: выберите конкретный источник данных или группу источников.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 17

То же работает при поиске кода в Find In Path.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 18

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

Системные объекты

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

Объекты из этих каталогов часто используют в запросах, поэтому их нужно показывать в автодополнении и правильно подсвечивать: IDE не должна думать, что это какие-то неизвестные объекты.

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

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

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 19

Вот примеры некоторых системных схем:
PostgreSQL: pg_catalog, information_schema
SQL Server: INFORMATION_SCHEMA
Oracle: SYS, SYSTEM
MySQL: information_schema
DB2: SYSCAT, SYSFUN, SYSIBM, SYSIBMADM, SYSPROC, SYSPUBLIC, SYSSTAT, SYSTOOLS

Предупреждения и исправления

Теперь из окна предупреждения можно сразу решить проблему, о которой вам сообщили. Например, в окне об опечатке DataGrip предлагают ее исправить, а если IDE предупреждает о том, что нет псевдонима, вам тут же предлагается его завести. Для этого кликните действие слева внизу или нажмите Alt+Shift+Enter.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 20
Alt+Enter по-прежнему работает и показывает список всех возможных действий в данном контексте.

Мы также добавили несколько новых инспекций.

Необязательный CASE

Если оператор CASE можно убрать и привести код к более читаемому виду, DataGrip предложит сделать это.

С использованием IF:

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 21

С использованием COALESCE:

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 22

Возможная обрезка строки

IDE предупредит, если записываемое значение строки длиннее предполагаемого.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 23

Конвертация GROUP BY в DISTINCT

Теперь вы можете конвертировать GROUP BY в DISTINCT, если все столбцы в предложении SELECT есть и в GROUP BY.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 24

Редактор кода

Новые настройки для передвижения каретки

Мы изменили поведение движения каретки по умолчанию. Теперь DataGrip передвигает каретку к концу текущего слова, если вы прыгаете по словам. Это поведение настраивается в настройках: Editor | General.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 25

Обычно это действие выполняется стрелками при нажатом Ctrl дляWindows/Linux и нажатом Opt для MacOS. Поведение по умолчанию в разных операционных системах отличается: теперь в наших IDE это работает “как на Маке”.
Раньше:

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 26

Теперь:

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 27

Выделение запроса

Добавили новое действие: Select current statement. Его можно найти при помощи Find Action (Ctrl/Cmd+Shift+A). Если используете действие часто, назначьте сочетание клавиш.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 28

Сворачивание чисел

Большие числа можно сворачивать при помощи Ctrl/Cmd+Minus.

DataGrip 2019.2: Управление соединениями, поиск по данным, фильтрация в навигации - 29

Еще

  • DataGrip 2019.2 использует JetBrains Runtime 11, несертифицированный форк OpenJDK 11.
  • [Cassandra] Теперь можно редактировать столбцы таких типов: set, list, map, tuple, udt, inet, uuid, timeuuid.
  • Новые элементы в списке автодополнения IS NULL и IS NOT NULL. Раньше сравнения с NULL надо было набирать по отдельности.
  • Настройка Jump outside closing bracket/quote with Tab включена по умолчанию. По клавише Tab курсор перемещается вовне из блока кавычек и скобок.
  • Настройка Surround a selection with a quote or brace включена по умолчанию. Если при выделенном фрагменте кода набрать кавычку или скобку, фрагмент окажется внутри кавычек или скобок.
  • Действие Introduce alias (назначить псевдоним) стало частью меню Refactoring.
  • Наладили работу с PostgreSQL 12. Больше информации здесь: DBE-8384.
  • Добавили логичности в режим только для чтения. Раньше эта настройка включала сразу два режима: на уровне IDE (DataGrip анализирует, какие запросы изменяют данные) и на уровне драйвера (если он реализован). В IDE мы добавили возможность выполнить запрос после предупреждения, если очень надо. Но раньше режим только для чтения все равно блокировал такие запросы на уровне драйвера: DBE-8145. Теперь не блокирует.

Вот и всё!

Команда DataGrip

Автор: moscas

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js