Релиз DataGrip 2016.2: Импорт CSV, поддержка JSON и XML в строках, динамический SQL, улучшения для PostgreSQL

Привет! У нас пора релизов. Это пост о том, что интересного в новой версии DataGrip — нашей IDE для SQL. Эти изменения также касаются IntelliJ IDEA, PyCharm, PhpStorm и RubyMine — тех инструментов от JetBrains, где есть поддержка баз данных.

image

Вот, что мы добавили:

Импорт CSV
Старый способ был неудобный. Мы добавили интерфейс для импорта — теперь выбирайте из контекстного меню источника данных пункт Import from file…, указывайте путь к файлу и вперёд.

Откроется диалоговое окно, в котором есть опции для описания структуры файла — используемый разделитель, кавычки, наличие заголовков и т. д. В правой части укажите типы полей и другие характеристики таблицы, в которую попадут данные. По клавише Delete можно удалять столбцы из скрипта создания этой таблицы. Если при импорте возникнут ошибки, процесс не прекратится, а информация об ошибках запишется в текстовый файл — в нижней части окна укажите, где его создать.

df61fbfecb9b4e6d9c06cae924820931.png

Выбор схем
Схемы, которые вы видите в окне базы данных теперь выбирайте прямо из дерева. Во вкладке Schemas свойств источника данных их больше нет. Помните, что консоль знает только об объектах из этого дерева.

af3d619f18344025884e6028f112e4b8.png

Поддержка языков в строковых литералах
Строковому литералу можно присвоить определённый язык и пользоваться возможностями IDE по работе с ним — подсветкой, автодополнением и другими. Это может быть JSON, XML, регулярные выражения или любой диалект SQL.
Когда DataGrip понимает, что в поле содержатся JSON данные или XML — поддержка осуществляется автоматически.

Скажем, мы вставляем значение в поле типа JSON.

98aabd56bae142a9aace9c57ade3a89d.png

Если вы указываете значение для поля по умолчанию, происходит то же самое — здесь IDE поняла, что вы используете XML, и возможности по работе с этим языком стали доступны. Это переименование элементов, поиск вхождений, движение элементов в стороны и т. д. Не забудьте заглянуть на страницу документации о поддержке XML в наших инструментах.

334457f1ac50449fa6914d9c976dd81d.png

По умолчанию встроены только два типа, для которых языки поддерживаются автоматически, — JSON и XML. Но если у вас есть тип данных, для которого вы хотите иметь то же самое, то выберите Inject by Type из меню подсказок по Alt+Enter.

ea1be91f7e77456784b6caf8a61d4f35.png

В примере используется тип CUSTOMDATA, но, допустим, у нас всегда используется XML для типов, имя которых заканчивается на DATA. Имя типов, для которых будет осуществляться автоматическая поддержка, описывается в регулярном выражении (? i).*DATA. Можно на ходу проверить, соответствует ли шаблону та или иная строка, в данном случае — имя вашего типа.

c55a6c7e55b04c0caf2a217443180c5c.png

Шаблоны имен типов для поддержки языков в литералах попадают в Settings/Preferences → Editor → Language Injections.

eba6d70adb3f4419a6c9781b3d6ff542.png

Проверить строку на соответствие регулярному выражению можно теперь где угодно. По Alt+Enter укажите соответствующий язык, а потом опять по Alt+Enter выберите Check Regexp.

164df97b207b4ea095f7f1ea8e4d0b20.gif

Ещё один способ сообщить среде о языке в строковом литерале — комментарий вида language=%name%. В следующем примере применён динамический SQL — внутри строки заработало автодополнение и навигация: среда поняла, какие объекты используются в запросе внутри строки.

063e5b5abb02466aa31d0244af7219f6.png

Табличный редактор
Для значений внутри таблицы мы добавили дополнение по значениям в поле, которое вызывается по Ctrl (Cmd)+Space. Это напоминает уже существующий тип дополнения, который вызывается по Alt+/, — оно ищет по всем используемым словам во всех открытых файлах.

831764af76404c86bb9220a6a43f695d.png

Специфические улучшения для PostgreSQL: можно редактировать поля с типами range.

f26e66245b8a448c824bf237303ac7f0.png

И поля с временными зонами.

565a5c7ac8ce4735a32398ef6871fee0.png

Размер столбцов теперь меняется по Ctrl (Cmd)+Shift+Left/Right. Все столбцы выделяйте по Shift+Space, как в Excel.

0a592bd7c74e46779c2df023d0f42a25.gif

Консоль
Как и все другие среды разработки на платформе IntelliJ, мы теперь поддерживаем лигатуры. Для этого их должен поддерживать и сам шрифт, который вы установите. Это могут быть FiraCode, Hasklig, Monoid или PragmataPro.

a3168afd47f84cd4936afbe3304f98a3.png

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

cb16d8aa846c47efb37f64203587ca2f.png

Милая фича для тех, кто использует несколько языков, то есть для нас с вами: автодополнение поможет, если забыли переключить раскладку.

b2423235a7c3497691b419ed9360c259.png

В меню Surround with (Ctrl/Cmd+Alt+T) появился пункт Surround with function — выбранные выражения возьмутся в скобки, а курсор будет помещен перед первой скобкой. Раньше эта штука не работала с мультикурсорами, теперь все нормально.

033d990b9b68484489c2a771eefd2a80.gif

Для PostgreSQL мы поддержали search path — добавляйте и удаляйте схемы из меню в верхней части консоли.

32257c78906649fd9951267bf68f3378.png

Подключение
В окне подключения теперь работает дополнение имен в полях сервера, экземпляра и базы данных.

ce36245d8b5e4509bfa79c11d0a6c25d.png

В прошлый раз было много комментариев о проблемах с подключением к SQL Server. Мы написали небольшое руководство по решению основных проблем с этим.

Перекомпиляция пакетов в Oracle
Соответствующий пункт добавлен в контекстном меню, причем перекомпилировать можно только те пакеты, которые в этом нуждаются. Для этого выберите Invalid objects only.

6975115858074c22ade661c7ab4e4e37.png

Экспорт схемы
Теперь можно экспортировать сразу всю схему или выбранные таблицы. Мы начали работу по интеграции DataGrip с внешними инструментами pg_dump и mysqldump, так что пишите пожелания в комментариях!

d2242f776c4f4133aa74e3bd0e3a9b2c.png

Изображения как фон IDE
В меню Find Action (Ctrl (Cmd)+Shift+A) найдите Set Background Image или выберите соответствующий пункт контекстного меню файла с изображением. Затем настройте прозрачность и другие параметры фона. Это появилось во всех IDE на платформе IntelliJ.

d61603f494e445879461024b2ae19830.png

Если хотите узнать больше, добро пожаловать на страницу What«s new, и не забудьте заглянуть в Features, вдруг чего-то не знали?

Будем рады, если вы попробуете DataGrip 2016.2 и расскажете о впечатлениях, пока мы готовим первое небольшое обновление.

Команда DataGrip.

Комментарии (1)

  • 21 июля 2016 в 18:18

    +3

    фон конечно киллер-фича

© Habrahabr.ru