JetBrains приближается к релизу новой IDE для работы с SQL и базами данных. Мы запустили EAP программу год назад и благодарим всех её участников. Как всегда, ваши мнения и пожелания сделали наш продукт лучше.

Мы рады представить вам 0xDBE 1.0 Preview. Это отличный шанс попробовать нашу новую IDE и поделиться впечатлениями, что поможет нам сделать 0xDBE ещё лучше к моменту релиза.



Нам нравится название 0xDBE, но оно всё же рабочее, и к релизу мы выберем другое — более читаемое.

Ещё мы хотим лучше узнать наших пользователей и понять, как вы работаете с базами данных, поэтому составили небольшой опрос. Просим пройти его, на это уйдёт 5-8 минут. Среди тех, кто принял в нём участие, мы разыграем десять годовых лицензий на 0xDBE.

Итак, вот что мы добавили с момента запуска EAP:

Быстрая и точная интроспекция

В первую очередь, мы переработали алгоритм получения мета-информации о базе данных и расширили стандартную JDBC-интроспекцию для большинства поддерживаемых СУБД. Помимо увеличения скорости это привело к улучшениям в графическом интерфейсе — теперь объекты базы данных сгруппированы по типам:



Управление объектами БД

При нажатии Ctrl+F6 (Cmd-F6 для OS X) на имени таблицы в текстовом редакторе или в окне Database view открывается окно Modify Table, в котором можно добавлять и удалять столбцы, менять их свойства, добавлять и удалять ключи и индексы. В реальном времени генерируется DDL-скрипт, который будет выполнен для этих изменений:



Текстовый поиск

Теперь доступен текстовый поиск по результату запроса. Например, вам нужно найти данные, а столбец забыли. Есть поддержка регулярных выражений:



Кодогенерация запросов

По нажатию Alt+Ins (Cmd-N для OS X) в текстовом редакторе доступна генерация DDL-запросов. В появившемся окне вы можете создавать таблицы, функции и процедуры на основе графического интерфейса. Если курсор находится внутри существующего DDL-запроса, IDE предлагает изменить столбец, добавить ключ или индекс.

Получившийся код вставится в текстовый редактор или сразу выполнится в базе данных:



Когда вы собираетесь вставить данные, используя несколько идущих подряд предложений INSERT, эти данные можно редактировать в виде таблицы ещё до вставки. Если вы добавите строчку в эту виртуальную таблицу, ещё одно предложение INSERT сгенерируется в редакторе.



Консоли запросов

Мы вынесли открытие новой консоли в отдельный пункт меню. Перемещайтесь между несколькими консолями в окне Files, через меню Recent Files, в Navigation toolbar или по Ctrl+Tab. У каждой консоли есть переключатель контекста — меняйте схему для выполнения скрипта, не создавая новую консоль:



История изменений

IDE локально хранит историю изменения каждого файла. В смежных окнах можно сравнить версии и откатиться к любой из них:



Исполнение запросов

Выполнение выделенного блока кода теперь работает не только в консолях, но и в файлах. Также вы можете выбрать, как IDE должна поступить в этом случае: выполнять выделенный блок как один запрос, выполнять блок как несколько запросов, или попытаться самой определить, что делать, и выполнить валидный скрипт, даже если вы выделили нерабочий кусок кода:



Ещё мы добавили опций для запуска запроса из консоли. Если курсор стоит внутри сложного выражения, IDE может выполнять только подзапрос, выполнять весь запрос, или спрашивать, какой из доступных запросов выполнить:



Если курсор стоит вне SQL-кода, то также есть три опции: IDE может выполнить все запросы в файле, выполнить только запросы ниже курсора или не делать ничего.

Выполнение запросов из Structure view

По нажатию Ctrl+Enter (Cmd-Enter для OS X) запрос выполняется прямо из окна Structure view. Это удобно, если вам нужно быстро выполнить только некоторые запросы из файла:



План выполнения

Для запросов доступен план выполнения:



Сравнение результатов запросов

Результаты выполнения двух запросов возможно сравнить в смежных окнах. IDE подсвечивает разницу и позволяет изменять строгость критерия оценки равенства строк. То есть, если вы хотите считать равными строки, которые отличаются данными только в одном (или более, на выбор) столбце, это указывается в значении параметра Tolerance. Любой столбец также может быть исключён из процесса сравнения:



Поддержка формата CSV

Для редактирования CSV-файлов или других табличных данных в тексте выберите пункт Edit as Table из контекстного меню. Откроется окно настроек, в котором вы можете указать разделитель, определить, есть ли в файле заголовки, в каких случаях брать значения в кавычки и т. д. Данные из файла сразу отобразятся в виде превью таблицы:



Настройки запросов с параметрами

Мы обновили окно настроек параметризированных запросов, которое находится в
Settings > Database > User Parameters. Теперь подсвечиваются регулярные выражения, а также есть возможность выбирать диалект, в котором будут использоваться шаблоны:



Диаграммы

Вы можете смотреть диаграммы с наглядным отображением зависимостей между объектами:



Улучшенная навигация по объектам БД

Для того чтобы перейти к любому объекту базы, нажмите Ctrl+N (Cmd-O для OS X) и введите его имя в текстовое поле. Если это таблица, вы увидите табличный редактор, а если функция или процедура, откроется редактор с DDL-скриптом для её изменения:



Плагины по умолчанию из Intellij IDEA теперь могут быть установлены в 0xDBE. Это Terminal, Git, Subversion и другие.

В дополнение ко всему, мы улучшили поддержку HiDPI для Windows и Linux, добавили Distraction Free mode — режим, в котором вы видите только текстовый редактор, а также сделали много других небольших улучшений.

Мы планируем релиз нашей IDE для SQL-разработчиков на середину ноября. Она будет доступна в рамках JetBrains Toolbox, как «Single IDE», а также как часть пакета «All Products».

Будем рады ответить на любые вопросы!

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


  1. soroktu
    27.10.2015 18:48
    +19

    У 0xDBE есть преимущества перед родственным плагином к Idea ultimate или функционал один и тот же?


    1. moscas
      28.10.2015 00:05

      Пока один и тот же. Впоследствии, возможно, 0xDBE будет уметь больше.


      1. Borz
        28.10.2015 11:51

        надеюсь под «уметь больше» будет относиться только к удобству и изначальной заточенности IDE, как например отличия между PhpStorm и IDEA+набор_плагинов.


  1. gurinderu
    27.10.2015 21:33
    +24

    По-моему отличное название. Может все же оставить его? За год использования уже сильно к нему привыкли)


    1. Ghedeon
      28.10.2015 11:04
      +5

      Крутое название, жаль если сменят.


    1. xenohunter
      28.10.2015 11:52

      Да, я тоже за 0xDBE.


    1. Ununtrium
      28.10.2015 13:24
      +3

      Присоеденяюсь. Не меняйте. Для девелоперов продукт же.


    1. zzashpaupat
      28.10.2015 14:29
      +4

      И произносить удобно: «охдбе» :)


  1. LookAround
    27.10.2015 21:37
    +1

    а есть ли работа с триггерами? в EAP версии не нашел…


  1. tumikosha
    27.10.2015 21:47

    Visualization диаграммы хорошо бы превратить в редактор, kак у Visual Paradigm


  1. eduard93
    27.10.2015 22:13
    +3

    Написал вам года полтора назад фич реквест, с тех пор ничего не произошло.
    Хотелось бы иметь поддержку InterSystems Cache.


  1. mIK_LH
    27.10.2015 22:21
    +3

    Когда появится поддержка тригеров в Postgres?


    1. samokhvalov
      27.10.2015 22:35
      +1

      Из того, что сходу видно и очень хочется по Постгресу:
      — поддержка команд \l, \d и т.д.
      — синтаксис других pl-языков, не только plpgsql (другие — это, например, plv8)

      Сейчас, думаю, ещё набежит фидбэк от сообщества: www.facebook.com/groups/postgresql/permalink/391784527684967


      1. moscas
        28.10.2015 17:24

        Будем благодарны, если вы создадите feature request здесь у нас в issue tracker


    1. moscas
      28.10.2015 17:54

      Думаем, в минорных релизах втечение года.


  1. RafaelRS
    27.10.2015 23:16

    Попробовал открыть файл sqlite — написала ошибку


    1. reki
      27.10.2015 23:42
      +5

      Через File -> Open...? Так не работает, база Sqlite подключается как взрослая, через Data Source


  1. voddan
    28.10.2015 01:00

    Огромное спасибо команде за великолепный продукт! Использовал еще в ранней бетта, но даже в зачаточном состоянии 0xDBE была на голову выше чем родная студия в MSSQL. Особенно было круто работать с MSSQL сидя в линуксе. А сейчас еще и баги починили. Однозначно рекомендую!


  1. lasc
    28.10.2015 02:44

    MongoDb планируется? Какая цена будет? Так то под линем и dbeaver с mssql работает нормально.
    И сделайте tool button включеными по умолчанию, а то минут 5 искал как список таблиц посмотреть.


    1. moscas
      28.10.2015 12:00

      MongoDB есть в планах, но больше пока сказать не можем. Что касается цены, в конце поста есть ссылка на цены наших IDE по программе JetBrains ToolBox.


  1. BVadim
    28.10.2015 02:58

    Под Windows очень долго использовал dbForge Studio for MySQL. Считаю, что это лучшее решение для работы с MySQL. Всё сделано очень удобно, что сильно ускоряет работу. Но есть одно «но»: он только Windows. Моя основная рабочая ОС — MacOS, и я не видел ещё ни одного менеджера для MySQL, который хотя бы близко подошёл по удобству работы и функциям к dbForge. Сейчас использую Sequel Pro, он быстрый, достаточно удобный, его хватает для многих задач, но некоторых функций в нём очень не хватает: например нельзя отредактировать индекс. Понятно, что в любом случае нужно будет удалить его и создать новый, но когда нужно добавить поле в составной индекс — очень не удобно расставлять всё с нуля. Было бы здорово, если наконец появится достойный кросплатформенный менеджер БД. Navicat и Mysql Workbench очень далеко пока до удобства, хотя они полны функционалом.


  1. sergmesh
    28.10.2015 03:09
    +1

    Хотелось бы чтобы эта IDE была чем то средним между возможностью писать код и источником информации по структуре базы.
    Написать запрос не проблема, а вот знать, что таблица в себе содержит и как она относится к другим таблицам это иногда загадка дня на три.
    То есть этакая «база знаний» о базе данных. После года в продакшн и пары перешедших на другую работу dba очень тяжело искать информацию о структуре объектов.
    Хорошая попытка была реализована в Toad Data Modeler, но там все мышкой и писать запросы не получится.
    Хотелось бы иметь IDEA но для базы, когда все «под руками» и понятно как писать запрос для реализации поставленной задачи.
    Спасибо за хорошие продукты.


  1. FLashM
    28.10.2015 05:05
    +2

    Как бы я ни ненавидел SQL Server Studio, перейти на 0xDBE пока невозможно.

    Бросившиеся в глаза проблемы:
    1. Не индексируются базы данных кроме дефолтной (независимо от настройки схем).
    2. Невозможно нормально работать с xml-полями. Необходима возможность посмотреть отформатированный и подсвеченный xml.


    1. moscas
      28.10.2015 16:54

      1. Да, это очень важная вещь и мы планируем реализовать её в ближайших минорных релизах.
      2. Будет доступна опция Edit as xml… с подсветкой. Больше информации можно найти здесь: youtrack.jetbrains.com/issue/DBE-1764


      1. FLashM
        28.10.2015 21:23
        +2

        1. Супер! Спасибо.
        2. Ну так это мой тикет. Я только что подробно объяснил в нем, почему это не решает проблему. Будем надеяться, что он не потеряется среди закрытых. Переоткрыть-то я его не могу.


        1. moscas
          29.10.2015 12:05
          +1

          2. Мы переоткрыли тикет и думаем над этим, спасибо)


  1. SOLON7
    28.10.2015 06:36
    +1

    Жаль что Firebird не поддерживается, Но то что есть уже круто. Назовите проект Data Miner ))


  1. GORKOFF
    28.10.2015 08:53

    У нас на рабочем проекте при попытке просмотреть список таблиц пишет «loading...» и ничего не происходит (MS SQL Server).


    1. moscas
      28.10.2015 16:55

      Очень мало информации. Если вы готовы предоставить больше информации о происходящим, пожалуйста, воспользуйтесь нашим issue tracker'ом.


  1. gotch
    28.10.2015 09:30

    Как дилетант спрошу, это что-то вроде Toad от Quest Software?


  1. samokhvalov
    28.10.2015 09:44

    > «Будем рады ответить на любые вопросы!»
    Отвечать-то здесь будете на вопросы?


  1. Allfar
    28.10.2015 10:02
    +2

    Планируется ли бекпортирование фич обратно в плагины к, например, Pycharm-у и другим IDE?


    1. moscas
      28.10.2015 12:03

      Пока что всё, что работает в 0xDBE, доступно и в других наших IDE, которые поддерживают DataBase tools.


      1. VolCh
        28.10.2015 12:10

        Немножко не в тему, но при запуске PhpStorm 9 вылазит предложение перейти на IDEA c DataBase tools, типа лучше будет работать с базами. В шторме этот модуль какой-то ущербный?


        1. moscas
          28.10.2015 17:23

          А можеет подробней описать, в какой момент это происходит?


          1. VolCh
            30.10.2015 10:07

            Хм… Не могу специально воспроизвести (может из-за уведомления upgrade subscription — на днях стало всплывать), хотя иногда несколько раз на дню видел и за последние дней 10 точно несколько раз. В общем появляется, как минимум, при запуске PhpStorm 9.0.2 с активной подпиской, если на предыдущем выходе на проекте с имеющимися соединениями с MySQL и MS SQL, с активно используемой MySQL консолью, с кучей .sql-файлов (на других проектах ни соединений не настроено, ни консоль ни разу не открывалась, а sql-код только внутри php-строк). Ещё отличие этого проекта от остальных — ведётся больше двух лет, то есть файлы проекта создавались ещё PhpStorm 6 (остальные 8-9). Ещё отличие — единственный, который расположен в удаленном каталоге, смонтированном локально (собственно уже на автомате закрываю сообщения о переходе на IDEA и уведомление о медленности синка).

            В общем, если это баг, то зарепорчу как появится. А так вопрос остаётся в силе — можно даже немного расширить — если в вашей IDE есть поддержка баз данных, то во всех ваших IDE (плюс-минус временной лаг на мажорные версии) она одинакова, или только в IDEA (и теперь в 0xDBE) полноценная, а в остальных «несерьезных» типа PhpStorm урезанная? Или если есть PhpStorm, то ради лучшей поодержки БД смысла приобретать ещё и IDEA или 0xDBE нет?


  1. calx
    28.10.2015 11:35
    +3

    По-настоящему оценить, насколько это прекрасно, можно только попробовав какой-нибудь MySQL Workbench или pgadmin.


    1. xenohunter
      28.10.2015 11:54

      Да, pgadmin много крови попортил.


    1. nikolaikopernik
      28.10.2015 13:21
      +1

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


      1. calx
        28.10.2015 13:28

        Надеюсь, это появится.


        1. moscas
          28.10.2015 17:22
          +1

          Да, сейчас инструментов администрирования нет. И мы понимаем, что для полноценной конкуренции с другими продуктами они должны быть. Сейчас мы собираемся выпустить первую версию нашего продукта и планируем добавить в него много нового в последующих релизах.


  1. Fr05t1k
    28.10.2015 12:05

    Возможность не загружать blob поля реализована как-то странно. Есть настройка LOB length limit, но как быть если все-же нужно посмотреть этот BLOB? Опять лезть в настройку?

    И при редактировании настройки souce в разделе schemas, постоянно ошибка:

    [08S01] Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. java.net.ConnectException: Connection refused


    1. moscas
      28.10.2015 16:52

      Либо так, либо можно задампить BLOB. Right Click -> Save LOB… Если у вас есть идеи, как это лучше сделать, самый эффективный способ — очень кратко изложть их в нашем issue tracker.
      Что же касается описанной ошибки, какая у вас СУБД? MySQL? Успешно ли проходит Test Connection?


      1. Fr05t1k
        28.10.2015 17:03

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

        На счет ошибки:

        Скрытый текст
        image


        1. moscas
          28.10.2015 17:21

          Я создал issue у нас в трекере. youtrack.jetbrains.com/issue/DBE-1777
          Указал там всю доступную на данный момент информацию. Будет круто, если вы приложете туда свои логи или ещё какую-нибудь полезную информацию.
          Вы можете отслеживать issue и быстро узнавать, если есть какие-то новости.
          Спасибо!


  1. Vest
    28.10.2015 12:12

    Скажите, пожалуйста, что подразумевается под названием баз данных «Sybase»? Sybase ASE, SQL Anywhere или Sybase IQ.
    Я попробовал подключиться к SQL Anywhere, но оказалось, что 0xDBE, видимо, работает через jConnect, а не через JDBC-драйвер, о которым пишут тут: SQL Anywhere JDBC driver. Если что, всякие «за и против» разных драйверов хорошо описаны здесь.
    Спасибо.


    1. moscas
      28.10.2015 16:16

      Подразумевается ASE. Мы пока не поддерживаем SQL Anywhere.


  1. jack128
    28.10.2015 13:36

    А возможности сравнивать схемы БД с генерацией диф скрипта нету ???


  1. kikcorp
    28.10.2015 14:14

    Не хватает выбора БД в уже установленном подключении к ms-sql, а так же выбора БД из консоли. Очень не удобно создавать по подключению для каждой базы на сервере


    1. moscas
      28.10.2015 16:26

      Да, это одна из тех фич, которые у нас в самых ближайших планах к реализации, это действительно важно.


  1. gurinderu
    28.10.2015 17:06

    moscas могу ли я попросить реализовать механизм шаринга внутри команды списка серверов?
    Желательно без использования внешнего сервера и не через UDP. К примеру, чтобы члены команды указали ссылку на компьютер одного(или любого p2p) коллеги и получили весь список серверов с настройками. Ну и чтобы это все автоматически обновлялось при правках у всех.


    1. moscas
      28.10.2015 17:17

      Конечно можете. И именно для этого у нас есть issue tracker, где мы вас происм создать feature request и всё это описать.