DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое

в 12:08, , рубрики: cassandra, DataGrip, GoLand, intellij idea, jetbrains, mysql, nosql, phpstorm, postgresql, pycharm, sql, sql server, Администрирование баз данных, базы данных, Блог компании JetBrains

Привет! Это рассказ о том, что нового в нашем плагине для баз данных. Мы выпускаем его, как отдельный продукт DataGrip, и поставляем почти во все другие наши IDE. Будет много картинок и гифок. Для тех, кому лень их смотреть:

— Поддержка Cassandra
— Создание SQL-файлов из объектов схемы
— Новые инспекции
— Много новых штук в автодополнении
— Работа с источником данных через одно подключение
— Новый поиск
— Высококонтрастная цветовая схема

Спасибо тем, кто пробует EAP-версии и сообщает в наш трекер о проблемах: это помогает не дотащить их до релиза :) Активные пользователи уже получили бесплатные подписки на год.

image

Поддержка Cassandra

Потихоньку осваиваем NoSQL-базы. Пока только те, что используют SQL-подобные языки для запросов. Мы поддержали Clickhouse в 2018.2.2, а в этом релизе добавили Cassandra.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 2

Автодополнение

В этой подсистеме много нового.

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

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 3

В итоге, работает так:

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 4

При использовании GROUP BY DataGrip предложит список неагрегированных столбцов.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 5

В предложении SELECT предлагается список всех столбцов.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 6

Автодополнение работает для именованных параметров.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 7

Ещё добавили информацию о контексте для одинаковых имён.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 8

Наконец-то сделали postfix completion: это когда через точку пишут что-то, относящееся к объекту.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 9

Например, если после SELECT написать имяТаблицы.afrom — раскроется в список столбцов и предложение FROM. Или, на наш взгляд самое удобное, можно дописать .cast к колонке или переменной.

Лучше один раз увидеть:

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 10

Автодополнение стало лучше для оконных функций: автоматически добавляется OVER() и каретка ставится в нужное место.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 11

Рефакторинг

Важная штука, которую давно пора было сделать: использование псевдонима вместо таблицы. Нажмите на таблице Alt+Enter → Introduce alias. Использования таблицы будут заменены на псевдонимы.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 12

После предыдущего релиза мы получили подробный фидбек от speshuric. Например, он нашёл много неочевидных сценариев для Extract subquery as a CTE. Этот рефакторинг вызывается через меню Refactor → Extract → Subquery as CTE, но мы советуем привыкать к Find Action (Ctrl+Shift+A).

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 13

Что мы сделали:

– Новое имя для CTE не конфликтует с существующими: DBE-6496
– Правильно определяем контекст, если запрос обёрнут в другое выражение: DBE-6503, DBE-6517
– Не предлагаем рефакторинг в случае AS TableName: DBE-6490
– Поддержали для MySQL 8.
– Работает как надо с глубокими подзапросами. DBE-7332, DBE-7333

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

Шаблоны кода можно привязывать к диалектам — шаблон может работать для одних баз, и не работать для других.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 14

Что важнее: один и тот же шаблон может генерировать разный код для разных баз. Для этого создайте группы шаблонов для каждого диалекта, потому что одинаковые имена шаблонов не поддерживаются внутри одной группы (по умолчанию мы храним шаблоны в группе SQL).

Например, хотим создать шаблон для вытаскивания первых n строк из таблицы. В postgreSQL и SQL Server для этого используется разный синтаксис, а мы будем всегда использовать шаблон seln. Соответственно, реализуйте два шаблона в двух разных группах и присвойте им соответствующие диалекты.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 15

Получается так:

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 16

Из предложения SELECT теперь можно сгенерировать создание таблицы с такой же сигнатурой. Для этого нажмите Alt+Enter → Create table definition

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 17

И маленький фикс для шаблона INS подсказки для имён столбцов показываются автоматически.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 18

Анализ кода

Добавили инспекции о небезопасных DELETE и UPDATE — предупредим, что вы потеряете данные.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 19

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 20

А если запустите, уточним :)

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 21

Ещё одна инспекция найдёт неиспользуемые столбцы из подзапроса.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 22

А другая — неиспользуемый код.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 23

Объекты базы данных

SQL Generator (Ctrl/Cmd+Alt+G) научился писать результаты в файл: для этого нажмите кнопку Save.
По умолчанию доступны два способа организации файлов, но если вам нужны какие-то ещё, пишите в комментариях.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 24

Или уже сейчас, если нажать на карандашик справа, можете редактировать соответствующие скрипты на groovy. Или создавать свои.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 25

Поддержали расширения в PostgreSQL.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 26

Показываем статистику в информационном окне для источника данных (Ctrl+Q для Windows/Linux, F1 для OSX), в том числе количество различных объектов.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 27

А при генерации кода для удаления объекта добавили опцию Use drop cascade syntax.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 28

Соединение

До нынешней версии каждая новая консоль означала новое соединение. Другие вещи, которым не требовалась консоль, тоже создавали отдельные подключения: запуск скриптов, импорт, графический интерфейс создания таблиц. В 2018.3, если включить Single connection mode в свойствах источника данных, вся работа с ним будет происходить через одно подключение.

В результате временные объекты появятся в дереве, а ещё консоли и редакторы данных будут работать внутри одной транзакции. Это — первый шаг к полному управлению подключениями, которым мы собираемся заняться.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 29

А ещё сделали так, что IDE сама подсоединяется заново после простоя.

Поиск и навигация

Платформа IntelliJ представила новый поиск: он соединил в себе разные типы поиска, которые были разрознены: Search Everywhere, Find Action, Go to table/view/procedure/, Go to File и Go to Symbol. В DataGrip вторая вкладка называется Tables, а в других IDE — Classes. Но делает она одно и то же: ищет и объекты базы данных, и классы. Клавиша Tab переключает вкладки.

Алгоритмы поиска мы серьёзно не меняли: если вдруг у вас раньше что-то искалось хорошо, а сейчас ищется плохо, пожалуйста пишите.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 30

Несколько строк сразу теперь можно найти в «поиске везде» (Find in path). Для SQL особенно полезно — запрос найдётся внутри исходников объектов.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 31

TODO-комментарии теперь могут быть многострочными. Чтобы в такой комментарий подцепились следующие строки, отделите их пробелом от символа комментария. Оформленные так задачи попадают в TODO Tool Window.

На картинке понятней:

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 32

Интерфейс

Новая цветовая схема — очень контрастная.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 33

Переключать схемы так: Нажмите Ctrl+` и выберите Look and Feel.

Появилось меню для выбора цвета источника данных в окне его свойств.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 34

И немного дружелюбности добавили в поле выбора строк на страницу. Раньше, чтобы результат показывал все строки, нужно было сюда написать -1 :)

Теперь есть флажок.

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое - 35

Всё!

Более подробно тут: https://www.jetbrains.com/datagrip/whatsnew/
Скачать триал на месяц: https://www.jetbrains.com/datagrip/download
Твитер, который мы читаем: https://twitter.com/datagrip
Почта, которую мы читаем: datagrip@jetbrains.com
Баг-трекер: https://youtrack.jetbrains.com/issues/DBE

Команда DataGrip

Автор: moscas

Источник


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


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