company_banner
11 июня 2014 в 18:15

0xDBE. Новая IDE для разработчиков и админов СУБД от JetBrains

Как могут помнить те из вас, кто читает хаб «Программирование», зимой 2014 JetBrains объявила подписку на private preview C++ IDE. В результате немалое количество подписчиков ей уже пользуются, в начале осени мы планируем выпустить общедоступную early preview, а мы до сих пор олучаем письма от друзей на тему «мы не успели подписаться, как вскочить в этот поезд сейчас?».

А сейчас есть отличная возможность вписаться в похожую историю без опозданий: JetBrains открывает подписку на early preview новой IDE для разработчиков, которые пишут на SQL. И для админов баз данных, — им тоже бывает нужно что-то поудобнее, чем pgAdmin. Для админов новая IDE пригодится там, где им надо поработать с данными в таблицах. Назначать права, делать бэкапы и выполнять прочие чисто админские задачи IDE пока не умеет, хотя мы подумываем ее этому научить.

Короче: тут — подписываться, а под катом — подробности.


IDE основана на платформе IntelliJ, как и остальные IDE от JetBrains, поддерживает все популярные диалекты SQL, предлагает автодополнения и прочие удобства при работе с кодом SQL, работу со схемами баз данных, интеграцию в VCS и еще кое-что, о чем речь ниже. IDE написана на Java и поддерживает те СУБД, для которых есть драйверы JDBC.

На данный момент 0xDBE умеет делать все то же самое, что и плагин Database Support в IntelliJ IDEA, про который мы уже рассказывали на Хабре. Те администраторы и разработчики баз данных, которым ни к чему остальные языки, поддерживаемые в IntelliJ IDEA, теперь смогут работать так же, как их коллеги, пишущие на Javascript, PHP, Python или Ruby — т. е. и у них теперь есть своя маленькая IDE от JetBrains.

Вначале дадим ответы на самые популярные вопросы, возникшие после анонса в нашем англоязычном блоге и на reddit'e, а потом — подробности.

Итак: NoSQL сейчас не поддерживается, мы думаем о поддержке MongoDB, но пообещать прямо сейчас ничего не можем.

Почему она так странно называется? DBE — это Database Environment. А 0x добавлено для красоты, оно хорошо сочетается с DBE, на взгляд команды разработчиков. Нумерологи уже сбились с ног, пытаясь выяснить, что для JetBrains значит число 3518 (0xDBE в десятичной системе счисления), и нам уже пришлось признаться, что оно никак не связано с числом 42.

А теперь — подробности.

Автодополнение


Автодополнение в 0xDBE традиционно умное, учитывает внешние ключи (foreign keys), легко догадывается, что именно вы хотите вставить в таблицу, умеет предлагать параметры для операторов, функций и процедур:

image

Быстрые исправления

Если вы пишете код для работы с таблицей или столбцом, которые еще не успели создать, IDE предложит quick-fix и сама создаст то, что надо:

image

Редактор кода


Редактор традиционно включает в себя самую свежую версию того, что сделано для платформы IntelliJ, в том числе и многокурсорность. В Sublime-то она есть, а вот есть ли она в SQL Developer? ;)

image

Кстати, если глядя на рабочее поле 0xDBE вы задумались, как вам просто создать файл .sql, то смело делайте это с помощью File | Attach Directory, там выбирайте рабочий каталог, в котором хочется создавать файлы .sql, и добавляйте файл, как привыкли (<Alt+Insert>). Каталог и файлы появятся в панели Files (по умолчанию — в правой части экрана).



Если каталог добавлен в проект по ошибке, можно его отметить как Excluded (правый клик | Mark Directory As | Excluded). Это, кстати, ускоряет работу IDE, так как она индексирует все файлы проекта, кроме находящихся в исключенных из просмотра каталогах.

Табличный редактор


Разумеется, в 0xDBE есть отличный табличный редактор с навигацией по внешним ключам, транспонированным видом длинных строк (получается по двойному <Ctrl+Q> на строке) и прочими приятными возможностями.

image

Работа со схемой БД


Создание и модификация таблиц тоже становятся легкими, приятными и безошибочными в 0xDBE: можно это делать в консоли, можно — в графическом интерфейсе.

image

У новой IDE, которую пока нельзя скачать, но можно подписаться на early preview, уже есть свой сайт. Так как это предварительная версия, к релизу может что-то добавиться или измениться. Пожелания можно оставлять в комментах, а когда подписавшиеся коллеги потрогают новую IDE руками — то и в нашем трекере.

Подписывайтесь, и хороших всем праздников!

JetBrains Team
Автор: @philipto
JetBrains
рейтинг 180,65

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

  • +1
    Вчера подписался, жду инвайт — очень хочется потрогать систему руками.
  • +2
    Выглядит круто (особенно поддержка SQL Server и SQLite в одной IDE), но от IDE для SQL лично я ожидаю помощь в подготовке миграций БД — запросы-то я и сам написать смогу. Будет ли в 0xDBE включен инструмент для сравнения схем разных БД и подготовки скрипта миграции?
    • +3
      совсем простой инструмент уже есть: выбираем два элемента, <Ctrl+D> — и получаем diff с возможностью миграции. Но это — почти игрушка. О более серьезном инструменте думаем. Прямо сейчас нет.
  • 0
    Неужели появилось что-то, что может быть конкурентом PL/SQL Developer.
    • +2
      Toad вполне себе может.
      Но это IDE поюзать хочется.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Пользуюсь Sequel Pro под OS X, но тоже подписался на early preview новой IDE. Большой поклонник продуктов JetBrains. Миграции в продуктах Navicat есть (MySQL точно), и работают они со многими типами БД. Поэтому наверное будет вопрос в ценовой политике, но как мне известно, но не кусачая у JetBrains.
        • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Буду ждать. Интересна потенциальная стоимость данного инструмента.
  • +1
    Умееет ли он работать EER моделями? И дружит ли с Postgresql?
    • 0
      Если нет, то планируется ли подобный функционал? Ведь такая ниша пустует: если для Postgres есть pgModeller (не очень то удобный), а для MySql встроенный в Workbench — глюкавый и не юзабильный.

      Еще не хватает инструмента версионности баз данных для MySQL и Postgres, по аналогии со средством миграции для MS SQL.
      • 0
        Вроде решение от Microolap хорошо работает.
  • 0
    а будет работать на маке с sql server?
    • 0
      Странный вопрос. Там же драйверы (на java) под каждую систему. Если вы можете на маке запустить sqlserver — то почему бы и не работать? А если и не можете — почти точно сможет с удаленной системой работать.
      • 0
        спасибо
  • 0
    Неужели кто-то сделает замену для «моего» pgAdmin III!
    • +1
      я именно в этом качестве его и использую. Если конкретнее, то в проектах с node.js и PostgreSQL. Точнее, так как мне нужен и SQL, и Javascript в проекте, я пользуюсь IntelliJ IDEA Ultimate с плагином Database Support, однако для чистого SQL достаточно 0xDBE.
  • 0
    умеет делать все то же самое, что и плагин Database Support

    Вы планируете разнести возможности DBE и плагина?
    • 0
      Наверное, как с PyCharm будет — мелкие удобства вроде Create Python Project останутся в Pycharm, а все действительно важные нововведения будут вначале появляться и обкатываться в PyCharm, а потом (с задержкой на месяца 2-3) попадать в плагин для IntellyJ.
    • +1
      возможно, в будущем 0xDBE будет уметь что-то такое, что плагину не особо нужно, но пока будем поддерживать одинаковую функциональность. В остальном принцип обычный, как верно заметил alist — релизный цикл 0xDBE будет короче, чем у IntelliJ IDEA, стало быть и обновления всего, что связано с БД, в 0xDBE будут появляться раньше.
  • 0
    А будет ли поддержка, кастомных для субд фич: расширение sql, скриптовые языки для процедур и пакетов и тп?
    Идея позариться на место toad и plsqldeveloper и тп ide =)?
  • 0
    Было бы интересно увидеть поддержку CQL — языка запросов для Кассандры. Он похож на SQL, поэтому добавить его будет гораздо проще, чем язык запросов Mongo.
    • 0
      DataStax DevCenter в принципе хватает.
  • +2
    В посте не увидел T-SQL и PL/SQL поддержки
    Профайлинг запросов?
    И какие СУБД будут поддерживаться?
    Ясно, что MSSQL и Oracle как лидеры рынка. Будет ли DB2?
    • +1
      по ссылке из поста есть такая фраза:
      В заключение остается сказать, что плагин Database Support поддерживает все СУБД, для которых существуют драйверы JDBC (а это практически все популярные СУБД на рынке), и понимает 12 диалектов SQL
    • +1
      DB2 уже есть. «Из коробки» поддерживается не только самое популярное, вот скриншот того, что по умолчанию выдает диалог «Add Data Source»:

      • 0
        В принципе, любой JDBC драйвер можно добавить.
        Например, только что потыкал (в IDEA Ultimate) такую экзотику, как FoundationDB SQL Layer и VoltDB.
  • 0
    Я крайне впечатлен разработкой. Хотелось бы отдельную статью про использования продукта именно в качестве администрирования
  • +4
    Под Windows есть замечательное приложение — dbForge Studio for MySQL. К сожалению, ничего подобного, близкого по функционалу и удобству под MacOS и Linux я не нашел. В том числе рассматривая платные решения, вроде Navicat for MySQL. MySql Workbench обладает некоторыми функциями, но очень далёк по удобсву и «фишкам» от dbForge.

    Собственно вопрос. Нет ли у вас желания, заняться этим направлением, раз начало положено? И есть ли шанс в обозримом будущем увидеть подобный продукт. В основном интересуют именно инструменты дизайна и управления БД:

    1. Построение удобных диаграмм на основе схемы с прозрачным изменением, при изменеии схемы БД.
    2. Быстрое и удобное управление индексами, ключами, связями.
    3. Безпроблемное переименование объектов.
    4. Возможность удобно «держать перед глазами» всю структуру БД и изменять её.
    5. Умная синхронизация структуры БД (киллерфича dbForge for Mysql)
    6. Профайлер запросов.

    Список можно продолжить, но думаю направление понятно. Хотелось бы, чтобы на рынке появился действительно качественный инструмент для работы с БД, на платформах отличных от Windows.
  • +5
    что для JetBrains значит число 3518 (0xDBE в десятичной системе счисления), и нам уже пришлось признаться, что оно никак не связано с числом 42
    35-1+8=42

    Часто пользуюсь IBExpert. Там есть уникальная (как мне кажется) функция: в окне Query Result есть команды «Copy selected rows as INSERT», «Copy selected rows as UPDATE». Очень удобно переносить выбранные данные из рабочей базы в тестовую.
    • 0
      В плагине к Идее это тоже есть уже давно.
      image
      • 0
        Вот картинка:
  • +4
    Я перепробовал наверно с десяток разных инструментов для работы с СУБД и остановился на этом семействе www.sqlmanager.net Настоятельно советую скачать разные инструменты и их тщательно изучить.
    На работе встречался с большими (на мой взгляд) базами, в которых были сотни баз, таблиц, миллионы записей, сотни полей в таблицах. В общем, огромное количество элементов в схеме. В такой ситуации, большинство инструментов начинает безумно тормозить, пытается перетащить всю схему заново при малейшем изменении. Т.е. нужно подумать о том, что объектов бывает много и они могут иметь сложную структуру, предусмотреть группировку (например по префиксу).
    Еще один камень преткновения — выполнение запросов параллельно. Если данных много, то запросы могут выполняться долго и нужна возможность вынесения таковых в фон (на задний план).
    Нужен хороший редактор хранимок, триггеров с возможностью отладки и какого-то легкого справочника по синтаксису (с учетом диалектов SQL и версий DBE).
    И было бы здорово иметь хороший инструмент для рефакторинга. Идея довольно простая, но может помочь: анализ поля на повторяющиеся значения и вынесения их в отдельный справочник с созданием связей и построением индексов.
    А вообще у вас впереди очень много работы, но начинание очень полезное и актуальное. Сам недавно пересел на Mac и понял, что хорошего профессионального ПО под него мало. Спасибо!
  • 0
    Если бы было сопоставимо по возможностям хотя бы с MySQL Workbench, было бы круто. То есть с возможностью применения миграций на основе текущей и удаленной таблицы.

    Совсем мечта — в PhpStorm'е интеграция с фреймворками типа Yii и отображение структуры БД на основе моделей ActiveRecord… Но этой я совем розовые очки надел =)
  • +1
    Есть еще такая штука как navicat, очень удобная штука, она конечно не IDE, но и автокомплит и мониторинг сервера, и план запроса и куча рюшечек, платная, возможно дорогая, но вещь интересная
  • 0
    У DB2 три основные платформы/диалекта — LUW, iSeries, zSeries. Отличаются между собой значительно. На что из них ориентирован 0xDBE?
    • 0
      на LUW, но есть кое-какая поддержка для zOS, ибо пользователи просили.
  • +3
    На самом деле, я жду от IDE возможность работы не только с SQL-запросами и таблицами схемы, а также и с другими не менее важными ее объектами. Я вижу, что в основном в комментариях отписались люди, использующие на практике MySQL и Postgres для своих веб-проектов, и, если говорить начистоту, в таких проектах редко база данных разрастается до действительно больших размеров.
    Как разработчику на Oracle в компании, где добрая часть бизнес логики реализована именно в БД, мне в первую очередь интересно видеть в IDE возможности по работе с производительностью и отладкой запросов и хранимых процедур (в том числе включенных в пакеты), возможности мониторинга работы инстанса (топ запросов, появляющиеся блокировки ресурсов и пр.), удобный рефакторинг, возможности экспорта результатов выполнения запросов и т.п.
    Такие вещи как подстановка наименований столбцов таблицы в инсерте конечно круто, но не так необходимо по сути…
  • +2
    Недавно пробовал работать с указанным плагином Database Support. Это изделие, возможно, хорошо работает с небольшими БД, но если у тебя в схеме десятки тысяч таблиц, пакетов и прочих объектов, то оно на каждое телодвижение зависает намертво. Видимо, пытается подсосать всю схему. Также ужасно сделано создание коннекшнов, все нужно прописывать вручную, настройки из Oracle TNS не берет. Мне нужно одновременно работать с десятками инстансов на разных машинах, причем они мигрируют. Я честно пытался подружиться с этим плагином, чтобы при разработке Java-source пакетов СУБД сразу писать запросы в той же IDE, но не вышло.
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Как-раз начинаем делать DW решение для нашего онлайн сервиса. Отправил заявку. Жду инвайт.
  • 0
    А как произносить название программы в разговоре? НольИксДиБиИ? Как ее называют внутри JetBrains?
    • +1
      канонически верное произношение, согласно andreycheptsov, оу-кси-ди-би-и. В частных беседах я иногда забываюсь и называю ее ноль-икс-ди-би-и.
      • 0
        [занудаOn]Если это читается как «оу», то почему вы в названии написали ноль («0»), а не О?[/занудаOff]
        • +1
          это ж американский английский. Если носитель языка будет диктовать свой телефонный номер по цифрам, то 123-03-03 он скажет one-two-three-[ou]-three-[ou]-three. Проверено! :)
  • 0
    Это будет реализовано как плагин IDEA? На пример как PhpStrom или WebStorm.
  • 0
    Класс ребята, нравятся мне ваши продукты.
    Подскажите, как при работе с Oracle переключится на другую схему если к серверу я уже подключится, где нужно указывать логин и пароль для нее?
    Т.е. мне нужно чтобы Console выполняла sql на другой схеме, не той чей пользователь и пароль указан при подключении.
    • 0
      а явное указание имени схемы перед именем таблицы разве не помогает? Если нет, то проверьте права пользователя на ту схему.

      пример: SELECT * FROM ANOTHER_SCHEMA.TABLE_NAME;
      • 0
        Это понятно, так пока и приходится делать.
        Хотелось бы открыть новую вкладку которая целиком бы относилось к другой схеме, как это сделано в Toad for Oracle.
    • +1
      Можно продублировать data source и проставить в копии другие настройки. Однако мы понимаем, что это — неидеально, и на это есть несколько тикетов в нашем трекере, например http://youtrack.jetbrains.com/issue/DBE-305.

      Если будет возможность, напишите, пожалуйста, нам в трекер, как лучше это сделать с вашей точки зрения.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка