DataGrip 2019.2: пошук за даними, фільтрація в навігації, керування з'єднаннями
DataGrip 2019.2: пошук за даними, фільтрація в навігації, керування з'єднаннями
Що нового в JetBrains DataGrip:
Вікно інструментів Services
У IDE на платформі IntelliJ з'явилося нове вікно інструментів Services. У DataGrip тут відображено з'єднання.
Кожний вузол дерева, будь то служба, джерело даних, з'єднання, можна відкрити в окремій вкладці: натисніть Show in New Tab на панелі інструментів. Або використовуйте drag-and-drop. Якщо на з'єднанні світиться зелений кружок, це означає, що воно активно. Закрити з'єднання можна з контекстного меню.
Результати запитів прикріплені до відповідних з'єднань. Якщо хочете повернути вигляд як раніше, відключіть дерево служб у налаштуваннях відображення, натиснувши на іконку шестерні.
Таймер запиту
У вікні Services додали можливість дивитися, скільки часу займає запит: годинник цокає праворуч від консолі, з якої він запущений.
Docker
Ще одна служба, яка може з'явитися у цьому вікні, — Docker, якщо ви використовуєте відповідний плагін.
Поєднання клавіш для відображення/приховування вікна Services — Alt/Cmd+8.
Пошук за даними
Шукайте дані, навіть якщо не пам'ятайте, де вони зберігаються. Виділіть джерело даних, групу джерел або, навпаки, лише окремі таблиці, і натисніть Ctrl/Cmd+Alt+Shift+F. Або виберіть Full-text search з контекстного меню.
У діалоговому вікні введіть, що шукати. Ліворуч буде список джерел даних. У нижній частині вікна відображаються запити, які DataGrip виконає для пошуку.
По кліку на результат відкриється редактор даних, якому буде застосовано фільтр, щоб показати тільки знайдені рядки. Якщо стовпців занадто багато і незрозуміло, де те, що ви знайшли, використовуйте текстовий пошук: Ctrl/Cmd+F.
Деталі:
– В 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)< /code>
– У Oracle, DataGrip буде використовувати індекси context, ctxrule, ctxcat, якщо вони є.
– У SQL Server, якщо побудовано повнотекстові індекси, DataGrip генерує запит із пропозицією `WHERE CONTAINS(col, N'text')`.
– Пошук шукає у стовпцях, для яких не підтримується LIKE. Наприклад, JSON-стовпці будуть попередньо сконвертовані в рядок.
– Для Cassandra DataGrip запускає кілька запитів для однієї таблиці, тому що оператор ORне підтримується.
Редактор даних
Швидка зміна розміру сторінки
Змініть розмір сторінки в редакторі даних, не ходячи в налаштування.
Імена вкладок
Тепер ви можете назвати вкладки результатів: напишіть ім'я в коментарі перед запитом.
Якщо вам не подобається, що будь-який попередній коментар стає ім'ям, вкажіть слово, після якого йтиме рядок для заголовка. Це робиться у відповідних налаштуваннях.
Провідник бази даних
Швидкий бекап таблиці
Копіювати таблиці за допомогою drag-and-drop можна давно, але раніше це не працювало, якщо перетягувати ту саму схему. Тепер працює! Зручно, якщо робите бекап даних перед важливою операцією.
Швидке створення групи
Створюйте групи джерел даних, перетягуючи одне джерело на інше. Якщо потрібно перемістити джерело даних у існуючу групу, це також робиться мишкою. Любителям клавіатури нагадуємо, що для цього є клавіша F6.
Примусове оновлення
Нова дія Force Refresh підвантажить інформацію про всі об'єкти бази, попередньо очистивши кеш. Може бути корисним, якщо щось “залипло” в пам'яті і ви не бачите актуальної картини.
Активні з'єднання
З цієї версії маленький зелений гурток на іконці джерела даних означає, що з'єднання з ним активно.
Коментарі до таблиць
Після включення View | Appearance | Descriptions in Tree Views коментарі до таблиць з'являться у провіднику.
Фільтрація за джерелами даних
Якщо у вас багато схожих баз даних, було незручно шукати об'єкти: наприклад, якщо ви шукаєте таблицю, а таких таблиць у вас десять, всі вони показувалися у видачі.
Зараз можна вказати, де шукати: виберіть конкретне джерело даних або групу джерел.
Те ж працює при пошуку коду в Find In Path.
Допомога при написанні коду
Системні об'єкти
У базах даних є системні каталоги — там зберігаються метадані: інформація про таблиці, процедури, вбудовані функції.
Об'єкти з цих каталогів часто використовують у запитах, тому їх потрібно показувати в автодоповненні та правильно підсвічувати: IDE не повинна думати, що це якісь невідомі об'єкти.
Раніше, щоб це працювало, системні схеми треба було додавати до провідника, бо DataGrip ”знав” тільки про ті об'єкти, які проінтроспектовані. Але системні схеми не змінюються, отримувати інформацію про них щоразу немає сенсу. До того ж, вони не завжди потрібні у провіднику і заважають там із робочими схемами.
Значок блискавки навпроти схеми означає, що інформація про її об'єкти завжди є у DataGrip, навіть якщо ви не додали її до провідника.
Ось приклади деяких системних схем:
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.
Alt+Enter як і раніше, працює і показує список усіх можливих дій у даному контексті.
Ми також додали кілька нових інспекцій.
Необов'язковий CASE
Якщо оператор CASE можна прибрати та привести код до більш читаного вигляду, DataGrip запропонує зробити це .
З використанням IF:
Можлива обрізка рядка
IDE попередить, якщо значення рядка, що записується, довше передбачуваного.
Конвертація GROUP BY в DISTINCT
Тепер ви можете конвертувати GROUP BY в DISTINCT, < /em>якщо всі стовпці у реченні SELECT є і в GROUP BY.
Редактор коду
Нові налаштування для пересування каретки
Ми змінили поведінку руху за замовчуванням. Тепер DataGrip пересуває каретку до кінця поточного слова, якщо ви стрибаєте за словами. Ця поведінка налаштовується в налаштуваннях: Editor | General.
Зазвичай ця дія виконується стрілками при натиснутому Ctrl для Windows/Linux і натиснутому Opt для MacOS. Стандартна поведінка в різних операційних системах відрізняється: тепер у наших IDE це працює “як на Маку”.
- 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 курсор переміщається з блоку лапок і дужок.
- Налаштування Увімкнено за замовчуванням. Якщо при виділеному фрагменті коду набрати лапку або дужку, фрагмент виявиться всередині лапок або дужок.
- Дія Introduce alias (призначити псевдонім) стала частиною меню Refactoring.
- Налагодили роботу з PostgreSQL 12. Більше інформації тут: DBE-8384.
- Додали логічності в режим тільки для читання. Раніше це налаштування включало відразу два режими: на рівні IDE (DataGrip аналізує, які запити змінюють дані) і на рівні драйвера (якщо він реалізований). В IDE ми додали можливість виконати запит після попередження, якщо потрібно. Але раніше режим тільки для читання все одно блокував такі запити на рівні драйвера: DBE-8145. Наразі не блокує.