Вот, что мы добавили:
Импорт CSV
Старый способ был неудобный. Мы добавили интерфейс для импорта — теперь выбирайте из контекстного меню источника данных пункт Import from file…, указывайте путь к файлу и вперёд.
Откроется диалоговое окно, в котором есть опции для описания структуры файла — используемый разделитель, кавычки, наличие заголовков и т. д. В правой части укажите типы полей и другие характеристики таблицы, в которую попадут данные. По клавише Delete можно удалять столбцы из скрипта создания этой таблицы. Если при импорте возникнут ошибки, процесс не прекратится, а информация об ошибках запишется в текстовый файл — в нижней части окна укажите, где его создать.
Выбор схем
Схемы, которые вы видите в окне базы данных теперь выбирайте прямо из дерева. Во вкладке Schemas свойств источника данных их больше нет. Помните, что консоль знает только об объектах из этого дерева.
Поддержка языков в строковых литералах
Строковому литералу можно присвоить определённый язык и пользоваться возможностями IDE по работе с ним — подсветкой, автодополнением и другими. Это может быть JSON, XML, регулярные выражения или любой диалект SQL.
Когда DataGrip понимает, что в поле содержатся JSON данные или XML — поддержка осуществляется автоматически.
Скажем, мы вставляем значение в поле типа JSON.
Если вы указываете значение для поля по умолчанию, происходит то же самое — здесь IDE поняла, что вы используете XML, и возможности по работе с этим языком стали доступны. Это переименование элементов, поиск вхождений, движение элементов в стороны и т. д. Не забудьте заглянуть на страницу документации о поддержке XML в наших инструментах.
По умолчанию встроены только два типа, для которых языки поддерживаются автоматически, — JSON и XML. Но если у вас есть тип данных, для которого вы хотите иметь то же самое, то выберите Inject by Type из меню подсказок по Alt+Enter.
В примере используется тип CUSTOMDATA, но, допустим, у нас всегда используется XML для типов, имя которых заканчивается на DATA. Имя типов, для которых будет осуществляться автоматическая поддержка, описывается в регулярном выражении (?i).*DATA. Можно на ходу проверить, соответствует ли шаблону та или иная строка, в данном случае — имя вашего типа.
Шаблоны имен типов для поддержки языков в литералах попадают в Settings/Preferences > Editor > Language Injections.
Проверить строку на соответствие регулярному выражению можно теперь где угодно. По Alt+Enter укажите соответствующий язык, а потом опять по Alt+Enter выберите Check Regexp.
Ещё один способ сообщить среде о языке в строковом литерале — комментарий вида language=%name%. В следующем примере применён динамический SQL — внутри строки заработало автодополнение и навигация: среда поняла, какие объекты используются в запросе внутри строки.
Табличный редактор
Для значений внутри таблицы мы добавили дополнение по значениям в поле, которое вызывается по Ctrl(Cmd)+Space. Это напоминает уже существующий тип дополнения, который вызывается по Alt+/, — оно ищет по всем используемым словам во всех открытых файлах.
Специфические улучшения для PostgreSQL: можно редактировать поля с типами range.
И поля с временными зонами.
Размер столбцов теперь меняется по Ctrl(Cmd)+Shift+Left/Right. Все столбцы выделяйте по Shift+Space, как в Excel.
Консоль
Как и все другие среды разработки на платформе IntelliJ, мы теперь поддерживаем лигатуры. Для этого их должен поддерживать и сам шрифт, который вы установите. Это могут быть FiraCode, Hasklig, Monoid или PragmataPro.
Получается вот что:
Милая фича для тех, кто использует несколько языков, то есть для нас с вами: автодополнение поможет, если забыли переключить раскладку.
В меню Surround with (Ctrl/Cmd+Alt+T) появился пункт Surround with function — выбранные выражения возьмутся в скобки, а курсор будет помещен перед первой скобкой. Раньше эта штука не работала с мультикурсорами, теперь все нормально.
Для PostgreSQL мы поддержали search path — добавляйте и удаляйте схемы из меню в верхней части консоли.
Подключение
В окне подключения теперь работает дополнение имен в полях сервера, экземпляра и базы данных.
В прошлый раз было много комментариев о проблемах с подключением к SQL Server. Мы написали небольшое руководство по решению основных проблем с этим.
Перекомпиляция пакетов в Oracle
Соответствующий пункт добавлен в контекстном меню, причем перекомпилировать можно только те пакеты, которые в этом нуждаются. Для этого выберите Invalid objects only.
Экспорт схемы
Теперь можно экспортировать сразу всю схему или выбранные таблицы. Мы начали работу по интеграции DataGrip с внешними инструментами pg_dump и mysqldump, так что пишите пожелания в комментариях!
Изображения как фон IDE
В меню Find Action (Ctrl(Cmd)+Shift+A) найдите Set Background Image или выберите соответствующий пункт контекстного меню файла с изображением. Затем настройте прозрачность и другие параметры фона. Это появилось во всех IDE на платформе IntelliJ.
Если хотите узнать больше, добро пожаловать на страницу What’s new, и не забудьте заглянуть в Features, вдруг чего-то не знали?
Будем рады, если вы попробуете DataGrip 2016.2 и расскажете о впечатлениях, пока мы готовим первое небольшое обновление.
Команда DataGrip.
Комментарии (30)
BanderasPRO
22.07.2016 07:09В PostgreSQL хранимые процедуры можно писать на нескольких встроенных языках (pgSQL, С, Tcl, Perl, Python), а так же подключить другие PL (procedural language), в том числе и JS (PL/v8). Как подсказать IDE использовать определённый язык в хранимой процедуре и пользоваться возможностями IDE по работе с ним — подсветкой, автодополнением и другими?
moscas
22.07.2016 11:35Если у вас DataGrip (а не IntelliJ IDEA, например), то пока никак, если вы не пользуетесь сторонними плагинами для поддержки языков. У нас есть в планах встроить в DataGrip поддержку python.
evgenybuckharev
22.07.2016 14:34Очень не хватает функционала по бекапу баз в пару кликов, как это сделано к примеру в Navicat, с выгрузкой в файл по нужде.
Только из за этого не перехожу на Ваш продукт.
А за переход от ключа на строку в связанной таблице вот это настоящая киллер-фича) Такого не встречал ещё в подобных программах…moscas
22.07.2016 19:24У вас какая DBMS?
Я писал в тексте, что работаем над интгерацией с mysqldump и pg_dump.evgenybuckharev
22.07.2016 19:27Ещё отдельное спасибо за поиск, по таблице, куда удобнее вручную написать часть запроса для фильтрации, чем клацать по фильтрам как это сделано у Navicat
sandrain
22.07.2016 14:59Для меня лично почти идеальная программа для работы с базами, кроме:
— Удобного экспорта таблиц(сейчас странно как-то экспортирует, отдельными инсертами и без структуры.)
— Часто вываливается ошибка о том что подключение к БД отвалилось и приходится выполнять запрос дважды
— Не хватает функционала синхронизации колонок для таблиц между сессиями (например сравнение и синхронизация между локальной и боевой таблицой)
— Не хватает поддержки монгиBorz
22.07.2016 16:11"Удобного экспорта таблиц" — структуру можно добавить через "Data Extractor".
"Часто вываливается ошибка о том..." — в этой версии уже исправили
а сравнение колонок — вы про это?rauch
22.07.2016 16:20> «Часто вываливается ошибка о том...» — в этой версии уже исправили
не очень понятно что конкретно исправили — в описуемом случае(по вашей ссылке) — после ночи бездействия В ЛЮБОМ СЛУЧАЕ приходтся выделять все датасорсы и стопать их, чтобы при следующем выполнении любого SQL они не отваивались
moscas
23.07.2016 15:53— Мы сейчас работаем над улучшением экспорта. Но DDL вставить можно и сейчас — выберите Add Table Definition в меню экстрактора в верхней панели консоли (слева от View Query)
— Ниже уе упоминали, что мы починили в 2016.2 и тот факт, что Borz должен опять дёргатть датасорсы руками — это не нормально, так что попробуйте пожалуйста у себя тоже.
— Это интересно, спасибо.
— До этого далеко.
rauch
22.07.2016 16:03Чуваки, расскажите, как решить следующий юзкейз:
— работодатель купил лицензию, скалачи, установили
— выходят обновления регулярно, все обновляются
— и вот уже в Help->About значится, что ты EAP юзер и скоро конец твоей пробной версии
ВОПРОС: как найти ссылку на самую свежую версию 0xDBE, которую можно скачать с моей купленной лицензией и использовать до скончания веков?moscas
22.07.2016 19:27Самая свежая версия — https://www.jetbrains.com/datagrip/download/
Если у вас обновлялись на ЕАПЫ, то это сделано намеренно теми, кто пользовался IDE.
До скончания веков вам доступна версия, которая существовала на момент подписки.rauch
22.07.2016 19:40> «До скончания веков вам доступна версия, которая существовала на момент подписки.»
вы не ответили на вопрос!
Я купил лицензию! В ней есть баги? да! Джет Брейнз выпускают фиксы? Да!
Дайте мне линк на самый свежий билд, который я могу скачать по своему реситу. Не надо мне давать одну ссылку(https://www.jetbrains.com/datagrip/download/) на самую свежую версию, которая не оплачена моим реситом, вы это сылшите? слышите?moscas
22.07.2016 19:44Но вообще, если у вас годовая подлписка, то 2016.2 для вас бесплатная.
rauch
22.07.2016 19:46а мне показывает, что я EAP юзер и скоро конец(~10 августа или что-то около того), что очень неприятно, когда знаешь, что примрно в эти даты будешь делать релиз, нужен будет доступ к продакшн БД, а тут такая подстава
moscas
22.07.2016 19:56+1Это значит, что вы на ЕАПе, скачайте 2016.2 релиз и всё будет работать без назойливых напоминалок (ключ надо будет заново ввести).
barbiedrummer
23.07.2016 18:29Использую DataGrip с того момента, как начал разрабатывать в PostgreSQL (перешёл с Oracle). До этого использовал PL/SQL Developer.
Переход дался с болью, но уже как-то привык и к продукту, и к БД. Хоткеи, гибкий поиск, автокомплит — тут без вопросов, всё хорошо.
Есть несколько вопросов.
1. Хочется иметь другой набор настроек форматирования кода.
Пример:
С моей точки зрения, встроенный в PL/SQL Beautifier предоставляет возможность изменить «правильные» аспекты при оформлении SQL кода. Планируется ли какая-то работа по расширению настроек форматирования?
2. Не понимаю, возможно ли запустить в DataGrip конструкцию вида:
Получаю ошибку:
В pgAdmin такая возможность есть, плюс она описана в документации PostgreSQL.moscas
23.07.2016 18:30Вид конструкции потерялся :)
barbiedrummer
25.07.2016 12:20Пример:
Конструкция вида:
Ошибка:
barbiedrummer
25.07.2016 12:21Что-то опять всё напуталось. Тяжёлые выходные.
Пример с ошибкой местами поменять надо.
moscas
25.07.2016 15:071. О форматировании думаем, можно приходить сюда и писать свои мысли: https://youtrack.jetbrains.com/issue/DBE-1922
2. Auto-commit теряет курсор после селекта, попробуйте его выключить.
oxidmod
фон конечно киллер-фича
TheKnight
В некоторых ситуациях — киллер-фича. Все зависит от человека. Некоторым приятнее, когда есть возможность вот так настроить. Или же задать прозрачность редактора.
zorro1211
На самом деле очень удобно для глаз ставить паттерны в фон, например пергамент + простая подсветка и будет казаться что читаешь книгу