— Поддержка Amazon Redshift и Microsoft Azure
— Несколько баз данных для одного источника PostgreSQL
— Контроль транзакций
— Вычисление выражений
— Разделены вкладки DDL и Data для таблиц
— Интеграция с инструментами восстановления для PostgreSQL и MySQL
— Улучшения, связанные с запуском запросов
— Улучшения, связанные с написанием кода
и другое…
![](https://habrastorage.org/web/f2a/e47/0bb/f2ae470bb2f5481a8e175a62b593374b.png)
Поддержка Amazon Redshift и Microsoft Azure
Облачные технологии набирают обороты, и мы стараемся не отставать. Пользователи просили поддержать некоторые из них в нашем трекере, особенно Redshift.
![](https://habrastorage.org/getpro/habr/post_images/d02/c30/1ec/d02c301ec041bd6f31dc39fff418d7ba.png)
Microsoft Azure похожа на SQL Server: мы добавили драйвер, интерфейс для создания источника данных, и улучшили получение информации об объектах. Этот процесс называется «интроспекция».
Интроспекция в Amazon Redshift стала инкрементальной: после операции DataGrip обращается за информацией только об измененных объектах.
Поддержали специфические части грамматики, которых нет в PostgreSQL. Например, UNLOAD подсвечивается корректно, а запрос в строке аргумента обрабатывается, как обычный SQL, — работает автодополнение и навигация.
![](https://habrastorage.org/web/e06/777/da2/e06777da2ba342e1a08e9bf20f056b1d.png)
Ещё пример: поддержали функции, которых нет в PostgreSQL.
![](https://habrastorage.org/web/3fa/2b4/32c/3fa2b432ce4748d892f8f6b65722bdde.png)
Если в коде для Redshift что-то подсвечивается красным, а вы знаете, что он правильный, — это баг. Пожалуйста, пишите об этом в наш трекер.
Если вы подключались к Azure и Redshift через драйвера для SQL Server и PostgreSQL, пожалуйста, переключитесь на нужный драйвер из контекстного меню.
![](https://habrastorage.org/web/444/4ab/f4c/4444abf4c1fe4e12afc0df1564634996.png)
Несколько баз данных для одного источника PostgreSQL
Эту штуку долго ждали, и мы благодарим тех, кто дождался :)
Для этого мы переписали значительную часть ядра и до сих пор работаем на ней. Так что ваше мнение об использовании нескольких баз в PostgreSQL нам особенно важно.
![](https://habrastorage.org/web/fe0/5a4/95c/fe05a495c9ce4347a91bde810fcb8a95.png)
Источники данных с несколькими базами теперь работают в Amazon Redshift, в Microsoft Azure и в других базах, к которым вы подсоединитесь через JDBC, если это поддерживает сам драйвер.
Контроль тразакций
Контроль транзакций (Transaction Control) заменил опцию Auto-commit.
Определяйте уровень контроля транзакций для каждого источника данных. В ручном режиме (Manual) транзакции надо фиксировать, выполняя COMMIT. В автоматическом режиме (Auto) — нет.
![](https://habrastorage.org/web/be4/40a/115/be440a11594c44b786983260547a71e3.png)
Уровень контроля транзакций можно определить и для каждой консоли в отдельности наряду с уровнем изоляции (Isolation level), если база данных его поддерживает.
![](https://habrastorage.org/web/c64/dce/0d2/c64dce0d2f0e4f59803dd09328fa681a.png)
В редакторе данных при ручном режиме добавили две кнопки: Commit и Rollback. Эти действия доступны и в контекстном меню.
![](https://habrastorage.org/web/b4c/a41/c54/b4ca41c5482c41c6a2f51a9ec2c3c96f.png)
Работает это так:
Автоматический и ручной режим.
Кнопка Submit или Ctrl/Cmd+Enter отправляет данные в базу: накатываются ваши локальные изменения, которые до этого момента были подсвечены и хранились внутри сессии DataGrip. Но эта транзакция не будет зафиксирована, если у вас выставлен ручной режим.
Revert Selected из контекстного меню или Ctrl/Cmd+Alt+Z на выделенных строках откатывает локальные изменения в этих строках. Раньше это вызывалось по Ctrl+Z, но обычно эта комбинация клавиш означает отменить, а не откатить.
Только в ручном режиме
Кнопка Commit или Shift+Ctrl+Alt+Enter фиксирует транзакцию. Если у вас висят локальные изменения, не отправленные в базу (напомню: подсвеченные), они автоматически отправятся в базу перед фиксированием.
Кнопка Rollback откатывает незафиксированную транзакцию.
Вычисление выражений
Это поможет быстро посмотреть данные без написания отдельного запроса.
Как и в других наших IDE, используйте комбинацию клавиш Ctrl+Alt+F8 для быстрого вычисления значения выражения. Под выражением в данном случае понимается значение объекта базы данных, например для таблицы — это сами данные.
![](https://habrastorage.org/web/cc3/8ba/bd4/cc38babd47504400a3126153d383e28f.png)
Для столбца из запроса это — значения столбца в ожидаемом результате.
![](https://habrastorage.org/web/d9c/d30/95b/d9cd3095b0cb4bd68af58091c25cf785.png)
Если выполнить то же действие на ключевом слове в запросе (или подзапросе), его результат появится во всплывающем окне. Для этого работает и Alt+Click.
![](https://habrastorage.org/web/deb/24f/289/deb24f289d0d4c3b8626ae427f3cc8bc.gif)
Alt+F8 вызывает отдельное окно для вычисления выражений. Как и в «быстром» варианте, для таблицы вы увидите данные.
![](https://habrastorage.org/getpro/habr/post_images/91c/f9c/f08/91cf9cf08e1855c8f15ac24331ba6eb7.png)
Здесь можно вычислять выражения в классическом понимании этого.
![](https://habrastorage.org/web/08b/a4d/ae4/08ba4dae4aa4479385401c014208f007.png)
DDL таблицы
Мы отделили данные таблиц от исходных кодов — больше нет вкладок DDL и Data.
Теперь по двойному клику на таблице открываются данные. Для просмотра DDL нажмите Edit Source на панели инструментов или Ctrl/Cmd+B на таблице.
![](https://habrastorage.org/web/26d/ea1/e9c/26dea1e9cce14dbfa924cf65bf41cccc.png)
Этот же DDL-редактор вы увидите, если нажмете Ctrl/Cmd+B на имени таблицы в SQL-скрипте. Ctrl/Cmd+click делает то же. В предыдущих версиях это действие выделяло объект в дереве баз данных. В 2017.2 для этого нажмите Alt+F1 и выберите Database view. Напишите нам, если стало неудобно: всё-таки, для такого действия раньше было одно нажатие, а теперь два.
А вот редактор данных для таблицы стало открыть легче — просто нажмите F4 в коде или в дереве.
![](https://habrastorage.org/web/a48/261/6cc/a482616cc1b5406dba79789b87d1a72a.gif)
Интеграция с инструментами восстановления для PostgreSQL и MySQL
В 2016.3 мы интегрировали в DataGrip mysqldump и pg_dump. Логично было интегрировать и инструменты восстановления для этих баз, об этом даже просили на Хабре в прошлый раз. Они появились в контекстном меню. Если в данном контексте доступен только один инструмент, например пункт меню называется ‘Restore with pg_restore’.
![](https://habrastorage.org/web/5e8/dcb/90e/5e8dcb90e9b842be802a0b675d420a2f.png)
Если база — PostgreSQL, то использовать можно pg_dump или psql: выбирайте вверху диалога.
![](https://habrastorage.org/web/673/d9b/890/673d9b890f0541e687e082d8c5a45b12.png)
А так окно выглядит для MySQL:
![](https://habrastorage.org/web/ea7/45b/d3e/ea745bd3e79e4288963dc764d9c3c315.png)
Запуск запросов
Добавили новое действие — Attach console. Вызывается, как всегда, из поиска действий по Ctrl+Shift+A или контекстного меню файла. Цель — запустить файл в контексте конкретной консоли, которую вы к нему прикрепите.
Таким образом можно выполнить скрипт на нескольких источниках данных последовательно.
![](https://habrastorage.org/web/ff4/538/fab/ff4538fab50c4a85a2d8c6f295dfe65c.png)
Это просили: нотификация о завершении длинных запросов. Сейчас запрос, время выполнения которого больше 20 секунд, бросит такую нотификацию внутри DataGrip. Нотификацию можно выключить: имя нотификации “Database queries that took much time”.
![](https://habrastorage.org/web/55c/467/e52/55c467e5255643498d7ae52dc6b73665.png)
Ещё одна вещь, которую просили: теперь, если вы переключаете консоли, переключается и результат, полученный из неё.
![](https://habrastorage.org/web/b1c/440/0ed/b1c4400edb914fd3a438c0f2cccff271.gif)
И наоборот: при переключении вкладок с результатами переключаются консоли.
![](https://habrastorage.org/web/cc5/e98/a74/cc5e98a74708400ba8ab3c60a508fff4.gif)
Это поведение теперь по умолчанию — чтобы его отключить, ищите опции “Autoscroll ..” в меню настроек по иконке с шестеренкой.
![](https://habrastorage.org/web/e93/547/af7/e93547af79b342109e3ac7bdbea40e6f.png)
Ещё одно небольшое улучшение — когда вы запускаете запрос с подзапросом, в окне выбора по умолчанию стоит внешний запрос, а не внутренний, как раньше. Внутренние запросы часто нельзя выполнить.
![](https://habrastorage.org/web/f5b/66c/afa/f5b66cafad824e8da18a880c423aaa31.png)
Починили переключатель схем для read-only соединений в MySQL.
![](https://habrastorage.org/web/04b/128/e1c/04b128e1c1d6490abd5cb0e5c580a7f4.png)
Написание кода
Автодополнение теперь работает для функций, возвращающих таблицы.
![](https://habrastorage.org/web/9fb/e11/246/9fbe112468f04c5e8e51e63fc73eae3a.png)
Ссылки NEW и OLD корректно обрабатываются для триггеров в PostgreSQL.
![](https://habrastorage.org/web/801/d2a/4bf/801d2a4bf62546b0b7c4f687633e0edf.png)
Добавили поддержку для предложений MERGE.
![](https://habrastorage.org/web/226/fc9/480/226fc948079341b68bf19bf5e5639f95.png)
Поддержали последовательности в скриптах.
![](https://habrastorage.org/web/d77/e77/ddc/d77e77ddc8024881acfb5c509fe72ed9.png)
Остальное
Добавили:
— Объекты базы можно добавлять в закладки (Bookmarks).
— Индексирование файла можно остановить и продолжить в любой момент.
— Результаты поиска в Find in Path с одних и тех же строк объединяются в один результат.
— Поддержка ALTER FOREIGN TABLE в PostgreSQL.
— Поддержка функции ‘json_table’ в Oracle.
— Отображаются все атрибуты в сгенерированных DDL для Redshift.
Исправили:
— DBE-4600, переименованная схема теперь сразу отображается в скрипте и в дереве.
— DBE-1288, переименование последовательностей в PostgreSQL не ломает запрос.
— DBE-4507, теперь можно создать составной первичный ключ.
— DBE-4637, запросы с GROUP BY больше не сообщают об ошибке, которой нет.
— Прокрутка в редакторе данных стала быстрее.
И как всегда: скачать здесь, о багах сообщать сюда, а ещё мы отвечаем на форуме, в Твиттере и здесь, в комментариях.
Спасибо!
JetBrains.
Комментарии (17)
ProgerMan
03.08.2017 16:37Для молодняка не хватает запросов в Event Log на изменение таблиц, когда ручками правят. Лень им update/insert/delete-запросы писать, а изменения сохранить в скрипте надо. И это пока единственное, что мешает им уйти с MySQL Workbench.
deinlandel
04.08.2017 10:55Это не только для скриптов полезно. Например, возможность отредактировать данные в Workbench и посмотреть, какие же в точности запросы будут выполнены ПЕРЕД их выполнением — это очень полезно.
moscas Автор
04.08.2017 11:01Спасибо! Мы часто говорим о том, что это нужно. Так что эту штуку мы планируем :) Но когда точно, пока неясно. https://youtrack.jetbrains.com/issue/DBE-3501
maratische
03.08.2017 17:43в Идее в таблице после всех столбцов появились все триггеры и прочие рутины с возможностью провалиться и посмотреть исходный код
спасибо, так облегчили работу
rolltin
04.08.2017 14:07Когда уже сделаете, чтобы при генерации DDL из PostgreSQL указывался OWNER и права на данный объект БД?
Chaak
05.08.2017 21:41После обновления до PHP Storm 2017.2 сломался экспорт данных в CSV из запроса.
Если раньше можно было, выполнив SQL запрос, а затем выделив несколько строк результата, нажать кнопочку To File..., то теперь эта кнопка заблокирована:
СкриншотVicking
08.08.2017 14:25Спасибо за отличный инструмент. MySQL Workbench уже не помню когда открывал. SSMS тоже откріваю в основном для администрирования.
Есть вопрос по лицензии: если у меня есть подписка, могу я использовать DG на 2х ПК (домашний десктоп и ноутбук)?
denismaster
Всегда приятно видеть развитие таких замечательных продуктов! Все хочу спросить, будут ли в ближайшей перспективе новости о Rider?)
moscas Автор
Должны быть в самой наибилжайшей :)