![](https://habrastorage.org/getpro/habr/post_images/3d5/37a/159/3d537a159a274419d1fbd5e675b9b62e.jpg)
Объекты базы данных
Не каждый день мы закрываем тикет с номер меньше, чем 100. Теперь можно группировать источники данных по нажатию F6.
![](https://habrastorage.org/getpro/habr/post_images/776/c87/1e5/776c871e526b13fe004ee38c5bd91ecb.png)
Группа — атрибут источника данных, так что создать пустую папку и складывать туда источники нельзя. Для создания новый группы выберите New Group в меню, которое появляется по F6.
Мы заменили Schemas… в дереве базы данных на легковесный ховер, который показывает, сколько схем видно и сколько их всего. Чтобы добавить новые схемы, нажмите на ховер.
![](https://habrastorage.org/getpro/habr/post_images/8f5/9c6/b75/8f59c6b7531ce066c2cbb95620033bf8.png)
Или используйте пункт контекстного меню Database tools > Manage selected schemas. Ещё один вариант: Alt+Enter > Manage selected schemas.
Пользователи и роли теперь отображаются в дереве объектов.
![](https://habrastorage.org/getpro/habr/post_images/eb2/89b/f63/eb289bf63559a3fddc7ca5637aab5324.png)
Добавили поддержку обёрток сторонних данных и, как следствие, сторонних таблиц для PostgreSQL.
![](https://habrastorage.org/getpro/habr/post_images/590/df9/a03/590df9a03a18f60e33c272c487cd3318.png)
Теперь в редактор можно перетащить несколько объектов из дерева.
![](https://habrastorage.org/getpro/habr/post_images/3bd/9ef/0a0/3bd9ef0a082061625dc3609597951c13.gif)
Но если нужны все столбцы таблицы, больше подходит Alt+Enter на звёздочке > Expand column list.
SQL
SQL-generator создаёт DDL-скрипты для объектов из дерева. Можно выделить несколько объектов, а можно сгенерировать DDL для всей схемы. Для этого нажмите Ctrl/Cmd+Alt+G или выберите в контекстном меню объекта SQL Scripts > SQL Generator…
![](https://habrastorage.org/getpro/habr/post_images/358/489/181/3584891811b90c43ada8a641b316adbe.png)
Улучшили автодополнение для JOIN, теперь условие по внешним ключам предлагается не после ON, а сразу. Даже алиасы подставляет :)
![](https://habrastorage.org/getpro/habr/post_images/70b/6a3/c04/70b6a3c04f3bd6ba96d370cbb4ca9ea3.png)
А ещё поддержали грамматику PostgreSQL 10.
![](https://habrastorage.org/getpro/habr/post_images/658/1bf/230/6581bf23043e02095d8814170581ca92.png)
Выполнение запросов
Большие скрипты лучше запускать из контекстного меню, потому что если их открывать, IDE может долго анализировать код. Теперь в этом меню выбирайте не только источник данных, но и схему.
![](https://habrastorage.org/getpro/habr/post_images/55a/dd8/b63/55add8b630467b26ded47f19cd02479d.png)
А если к файлу прикреплять консоль, появляется меню с источниками данных и всеми консолями, которые для них созданы.
![](https://habrastorage.org/getpro/habr/post_images/57f/3c7/069/57f3c706984cecccf71fe1acc7983e8f.png)
Раньше было одно настраиваемое поведение для выполнения запросов — теперь три. На каждое можно назначить отдельное сочетание клавиш. Например, то, что по умолчанию (Ctrl/Сmd+Enter) будет спрашивать — какой запрос выполнить, если их несколько. А на другое сочетание клавиш можно назначить выполнение всего скрипта.
![](https://habrastorage.org/getpro/habr/post_images/9c5/f2c/508/9c5f2c508f5d20326d906718c1b26235.png)
Добавили действие Set Current Schema для тех, кто не хочет водить мышкой, чтобы переключить схему для редактора SQL в правом верхнем углу.
![](https://habrastorage.org/getpro/habr/post_images/482/9ea/b7f/4829eab7fe3393bdd9041b46941fb18a.png)
Например, я назначил на него сочетание клавиш Ctrl/Cmd+Вверх. В платформе оно показывает навигационную панель, но если кто-то ей пользуется, мой совет — использовать Recent Files по Ctrl/Сmd + E.
![](https://habrastorage.org/getpro/habr/post_images/87c/b40/13b/87cb4013b242a91198992cb4bfcb0a11.png)
Соединение с базой
Добавили новые возможности в SSH-туннелирование:
— Чтение OpenSSH конфиг-файлов (~/.ssh/config и /etc/ssh/ssh_config).
— Диалоговое окно для One Time Password.
— Использование SSH-agent и Pageant для аутентификации.
![](https://habrastorage.org/getpro/habr/post_images/211/bc2/bc0/211bc2bc03e76faea02829b74ccf9e99.png)
А ещё мы поддержали базу данных Exasol.
![](https://habrastorage.org/getpro/habr/post_images/222/819/905/2228199053adfd4e5c100430a8020498.png)
Редактор данных
Нас просили сделать вставку из Экселя. В общем случае, это означает уметь вставлять значения в формате CSV. Подскажите DataGrip, в каком формате будете вставлять значения, или разрешите определить автоматически.
![](https://habrastorage.org/getpro/habr/post_images/20f/7bd/30b/20f7bd30b0c674e0e1afbeaabea35d5d.png)
И вперёд!
![](https://habrastorage.org/getpro/habr/post_images/143/d31/819/143d3181999f3bd6df653d98b119d06d.gif)
Числа теперь выравниваются по правому краю.
![](https://habrastorage.org/getpro/habr/post_images/4a9/147/b5c/4a9147b5ca241af16ff4a1b169a212cc.png)
Вкладки восстанавливаются после закрытия IDE. Отображать данные в них — не лучшая идея, если у вас было открыто десять вкладок с результатами тяжёлых запросов. Загружайте данные во вкладки по сочетанию клавиш Ctrl+F5/Сmd+R.
![](https://habrastorage.org/getpro/habr/post_images/079/484/a1f/079484a1ffc1fe318b753b155bad0178.png)
Сравнивайте содержимое двух или трёх ячеек по Shift+Ctrl/Cmd+D.
![](https://habrastorage.org/getpro/habr/post_images/b6e/12d/a6e/b6e12da6e3a868ae78cff437ec894b5f.png)
Навигация
В одном из предыдущих обновлений мы переделали навигацию — то, что в платформе называется Navigate to declaration (Ctrl/Cmd+B или Ctrl/Cmd + Клик), стало открывать редактор DDL, а не показывать объект в дереве.
![](https://habrastorage.org/getpro/habr/post_images/8b5/487/0cc/8b54870cc57e8520ae23a4de99e4cc0a.png)
Для привыкших к старому поведению добавили настройку: Navigate references to DDL editor. Сочетая выключение этой опции с опцией Auto-scroll from Editor, настраивайте поведение действия Navigate to declaration:
![](https://habrastorage.org/getpro/habr/post_images/fe2/4d3/2e8/fe24d32e84fbcf8c5f43a71602086d87.png)
Navigate references to DDL editor Вкл.
Auto-scroll from Editor Вкл.
Откроется DDL-редактор объекта, а сам объект выделится в дереве базы данных. Фокус в DDL-редакторе.
Navigate references to DDL editor Вкл.
Auto-scroll from Editor Выкл.
Откроется DDL-редактор объекта, в дереве ничего не выделится.
Navigate references to DDL editor Выкл.
Объект выделится в дереве базы данных.
Не забывайте о действии Select in database view, которое выделяет объект в дереве, — найдите его по Find Action (Ctrl/Cmd + Shift + A). Я назначаю на него сочетание клавиш Ctrl/Alt+D, по умолчанию сочетания клавиш нет.
Теперь мы надеемся, что все желаемые сценарии навигации покрыты. Пишите, если нет.
В контекстном меню источника данных появились все ассоциированные консоли.
![](https://habrastorage.org/getpro/habr/post_images/84e/4d7/d6c/84e4d7d6c30532fd471d2e9a39c2a6fb.png)
Скретч-файлы и консоли теперь во вкладке Files, а не в отдельной.
![](https://habrastorage.org/getpro/habr/post_images/154/c15/aee/154c15aee595ba23d5fdafd6e88bdb25.png)
Остальное
— Генерация DDL для таблиц не включает представления.
— Генерация DDL для MySQL работает с экранированными кавычками. Но работать может долго: больше информации здесь.
— Генерация DDL для функции в PostgreSQL включает все атрибуты (кроме obj_file и ink_symbol).
— Синхронизация настроек между компьютерами.
— Время отображается в UTC.
— Улучшена поддержка PIVOT.
— Раскрытие звёздочки работает с табличными алиасами.
— SQL-экстракторы учитывают стиль кода из настроек.
— Возможность указать текущую схему для неподдерживаемых баз.
— В Replace in path можно заменить сразу несколько выбранных вхождений.
Ждём вашего мнения в твиттере или здесь в комментариях.
Максим Соболевский и команда DataGrip
Комментарии (18)
Banan
09.12.2017 00:16Почему exasol, а не vertica?
moscas Автор
09.12.2017 02:21Потому что они сами к нам пришли и сказали, что их инструмент не очень, и они хотят, чтобы мы поддержали их базу, а они будут предлагать наш клиент своим пользователям =)
Мы разговаривали с ребятами из Вертики на AWS re:Invent неделю назад, и они, в прицнипе, готовы дать нам и грамматику, и запросы для интроспекции. Так как отличия от Постгреса там, вроде бы, не ключевые, сейчас кажется, что поддержка Вертики не будет стоить нам много. Так что мы думаем об этом и вероятность есть.
gundenaf
09.12.2017 02:21+1Всегда поражал размах JetBrains… Берутся за многое, а выходит почти все. Держите планку, спасибо.
a-l-e-x
09.12.2017 02:21Отлично. Очень прилично получается.
Если пишем wish list, то мне бы хотелось работать с GCP BigQuery.moscas Автор
09.12.2017 02:22Можно проголосовать а написать комментарий здесь =) youtrack.jetbrains.com/issue/DBE-2497
debose
09.12.2017 07:21В idea Ultimate 2017.3 случилось что-то неудобное с запуском скрипта из sql файла. Теперь по нажатию run (ctrl+что-то+f10) открывается меню в котором видны все базы на зарегистрированных серверах (sql server), а не только отмеченные для работы(как было в предыдущей версии). Можно как-то сделать чтобы было как раньше?
moscas Автор
11.12.2017 11:52Спасибо за фидбек! Мы решили добавить все базы, потому что бывает и наоборот: надо какой-нибудь скрипт запустить, скажем для всех баз, но пользователь не хочет их специально для этого добавлять в дерево, запускать индексы и так далее.
Но то, что вы написали тоже логично. Так что, пожалуй, надо учитывать оба случая. Создал тикет типа «usability problem» в нашем трекере: youtrack.jetbrains.com/issue/DBE-5537debose
11.12.2017 16:18Вот кстати ещё одна непонятная вещь — при нажатии на Jump to console вываливается длинный список консолей с названиями console_10, console_11… console_2, console_20, console 3… итд. Там кажется какие-то старые скрипты, которые я когда-то выполнял. И хочется этот список как-то очистить, оставив только 1 default-ную консоль, но непонятно как.
п.с. кстати список не растягивается в ширину — поэтому вместо Default-ная консоль там называется console (De… — что также не добавляет понятности.
Varim
А есть така фишка — перетащил таблицу на «экран» (диаграмма в SQL Server Management Studio), правой кнопкой по этой таблице, а там пункт меню «добавить все таблицы которые ссылаются на эту таблицу и все таблицы на которые ссылается эта таблица»? Ну еще бы не только таблицы но и другие объекты бд, типа view, триггеров, хранимых процедур?
moscas Автор
Такого в диаграммах пока нет. Самое похожее — можно узнать, в каких других объектах используется этот объект (скажем, тамблица). Для этого подойдёт Find Usages.
![image](https://habrastorage.org/getpro/habr/comment_images/ebb/d8e/6b5/ebbd8e6b5a81e8067cd9d0a6fb2d37a0.jpg)