- PVSM.RU - https://www.pvsm.ru -
Привет! Продолжаем серию постов о новых версиях IDE от JetBrains. Поговорим о том, что нового в DataGrip 2017.2 [1].
— Поддержка Amazon Redshift и Microsoft Azure
— Несколько баз данных для одного источника PostgreSQL
— Контроль транзакций
— Вычисление выражений
— Разделены вкладки DDL и Data для таблиц
— Интеграция с инструментами восстановления для PostgreSQL и MySQL
— Улучшения, связанные с запуском запросов
— Улучшения, связанные с написанием кода
и другое…
Облачные технологии набирают обороты, и мы стараемся не отставать. Пользователи просили поддержать некоторые из них в нашем трекере, особенно Redshift [2].
Microsoft Azure похожа на SQL Server: мы добавили драйвер, интерфейс для создания источника данных, и улучшили получение информации об объектах. Этот процесс называется «интроспекция».
Интроспекция в Amazon Redshift стала инкрементальной: после операции DataGrip обращается за информацией только об измененных объектах.
Поддержали специфические части грамматики, которых нет в PostgreSQL. Например, UNLOAD подсвечивается корректно, а запрос в строке аргумента обрабатывается, как обычный SQL, — работает автодополнение и навигация.
Ещё пример: поддержали функции, которых нет в PostgreSQL.
Если в коде для Redshift что-то подсвечивается красным, а вы знаете, что он правильный, — это баг. Пожалуйста, пишите об этом в наш трекер [3].
Если вы подключались к Azure и Redshift через драйвера для SQL Server и PostgreSQL, пожалуйста, переключитесь на нужный драйвер из контекстного меню.
Эту штуку долго ждали [4], и мы благодарим тех, кто дождался :)
Для этого мы переписали значительную часть ядра и до сих пор работаем на ней. Так что ваше мнение об использовании нескольких баз в PostgreSQL нам особенно важно.
Источники данных с несколькими базами теперь работают в Amazon Redshift, в Microsoft Azure и в других базах, к которым вы подсоединитесь через JDBC, если это поддерживает сам драйвер.
Контроль транзакций (Transaction Control) заменил опцию Auto-commit.
Определяйте уровень контроля транзакций для каждого источника данных. В ручном режиме (Manual) транзакции надо фиксировать, выполняя COMMIT. В автоматическом режиме (Auto) — нет.
Уровень контроля транзакций можно определить и для каждой консоли в отдельности наряду с уровнем изоляции (Isolation level), если база данных его поддерживает.
В редакторе данных при ручном режиме добавили две кнопки: Commit и Rollback. Эти действия доступны и в контекстном меню.
Работает это так:
Кнопка Submit или Ctrl/Cmd+Enter отправляет данные в базу: накатываются ваши локальные изменения, которые до этого момента были подсвечены и хранились внутри сессии DataGrip. Но эта транзакция не будет зафиксирована, если у вас выставлен ручной режим.
Revert Selected из контекстного меню или Ctrl/Cmd+Alt+Z на выделенных строках откатывает локальные изменения в этих строках. Раньше это вызывалось по Ctrl+Z, но обычно эта комбинация клавиш означает отменить, а не откатить.
Кнопка Commit или Shift+Ctrl+Alt+Enter фиксирует транзакцию. Если у вас висят локальные изменения, не отправленные в базу (напомню: подсвеченные), они автоматически отправятся в базу перед фиксированием.
Кнопка Rollback откатывает незафиксированную транзакцию.
Это поможет быстро посмотреть данные без написания отдельного запроса.
Как и в других наших IDE, используйте комбинацию клавиш Ctrl+Alt+F8 для быстрого вычисления значения выражения. Под выражением в данном случае понимается значение объекта базы данных, например для таблицы — это сами данные.
Для столбца из запроса это — значения столбца в ожидаемом результате.
Если выполнить то же действие на ключевом слове в запросе (или подзапросе), его результат появится во всплывающем окне. Для этого работает и Alt+Click.
Alt+F8 вызывает отдельное окно для вычисления выражений. Как и в «быстром» варианте, для таблицы вы увидите данные.
Здесь можно вычислять выражения в классическом понимании этого.
Мы отделили данные таблиц от исходных кодов — больше нет вкладок DDL и Data.
Теперь по двойному клику на таблице открываются данные. Для просмотра DDL нажмите Edit Source на панели инструментов или Ctrl/Cmd+B на таблице.
Этот же DDL-редактор вы увидите, если нажмете Ctrl/Cmd+B на имени таблицы в SQL-скрипте. Ctrl/Cmd+click делает то же. В предыдущих версиях это действие выделяло объект в дереве баз данных. В 2017.2 для этого нажмите Alt+F1 и выберите Database view. Напишите нам, если стало неудобно: всё-таки, для такого действия раньше было одно нажатие, а теперь два.
А вот редактор данных для таблицы стало открыть легче — просто нажмите F4 в коде или в дереве.
В 2016.3 мы интегрировали в DataGrip mysqldump и pg_dump. Логично было интегрировать и инструменты восстановления для этих баз, об этом даже просили на Хабре [5] в прошлый раз. Они появились в контекстном меню. Если в данном контексте доступен только один инструмент, например пункт меню называется ‘Restore with pg_restore’.
Если база — PostgreSQL, то использовать можно pg_dump или psql: выбирайте вверху диалога.
А так окно выглядит для MySQL:
Добавили новое действие — Attach console. Вызывается, как всегда, из поиска действий по Ctrl+Shift+A или контекстного меню файла. Цель — запустить файл в контексте конкретной консоли, которую вы к нему прикрепите.
Таким образом можно выполнить скрипт на нескольких источниках данных последовательно.
Это просили [6]: нотификация о завершении длинных запросов. Сейчас запрос, время выполнения которого больше 20 секунд, бросит такую нотификацию внутри DataGrip. Нотификацию можно выключить: имя нотификации “Database queries that took much time”.
Ещё одна вещь, которую просили [7]: теперь, если вы переключаете консоли, переключается и результат, полученный из неё.
И наоборот: при переключении вкладок с результатами переключаются консоли.
Это поведение теперь по умолчанию — чтобы его отключить, ищите опции “Autoscroll ..” в меню настроек по иконке с шестеренкой.
Ещё одно небольшое улучшение — когда вы запускаете запрос с подзапросом, в окне выбора по умолчанию стоит внешний запрос, а не внутренний, как раньше. Внутренние запросы часто нельзя выполнить.
Починили переключатель схем для read-only соединений в MySQL.
Автодополнение теперь работает для функций, возвращающих таблицы.
Ссылки NEW и OLD корректно обрабатываются для триггеров в PostgreSQL.
Добавили поддержку для предложений MERGE.
Поддержали последовательности в скриптах.
— Объекты базы можно добавлять в закладки (Bookmarks).
— Индексирование файла можно остановить и продолжить в любой момент.
— Результаты поиска в Find in Path с одних и тех же строк объединяются в один результат.
— Поддержка ALTER FOREIGN TABLE в PostgreSQL.
— Поддержка функции ‘json_table’ в Oracle.
— Отображаются все атрибуты в сгенерированных DDL для Redshift.
— DBE-4600 [8], переименованная схема теперь сразу отображается в скрипте и в дереве.
— DBE-1288 [9], переименование последовательностей в PostgreSQL не ломает запрос.
— DBE-4507 [10], теперь можно создать составной первичный ключ.
— DBE-4637 [11], запросы с GROUP BY больше не сообщают об ошибке, которой нет.
— Прокрутка в редакторе данных стала быстрее.
И как всегда: скачать здесь [12], о багах сообщать сюда [3], а ещё мы отвечаем на форуме [13], в Твиттере [14] и здесь, в комментариях.
Спасибо!
JetBrians.
Автор: moscas
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mysql/261653
Ссылки в тексте:
[1] DataGrip 2017.2: https://www.jetbrains.com/datagrip/whatsnew/
[2] особенно Redshift: https://youtrack.jetbrains.com/issue/DBE-3266
[3] трекер: https://youtrack.jetbrains.com/issues/DBE
[4] долго ждали: https://youtrack.jetbrains.com/issue/DBE-2287
[5] просили на Хабре: https://habrahabr.ru/company/JetBrains/blog/325066/#comment_10141482
[6] просили: https://youtrack.jetbrains.com/issue/DBE-3565
[7] просили: https://youtrack.jetbrains.com/issue/DBE-265
[8] DBE-4600: https://youtrack.jetbrains.com/issue/DBE-4600
[9] DBE-1288: https://youtrack.jetbrains.com/issue/DBE-1288
[10] DBE-4507: https://youtrack.jetbrains.com/issue/DBE-4507
[11] DBE-4637: https://youtrack.jetbrains.com/issue/DBE-4637
[12] здесь: https://www.jetbrains.com/datagrip/download/
[13] форуме: https://intellij-support.jetbrains.com/hc/en-us/community/topics/200381555-DataGrip
[14] Твиттере: https://twitter.com/0xdbe
[15] Источник: https://habrahabr.ru/post/334800/
Нажмите здесь для печати.