Мы рады представить вам 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)
gurinderu
27.10.2015 21:33+24По-моему отличное название. Может все же оставить его? За год использования уже сильно к нему привыкли)
tumikosha
27.10.2015 21:47Visualization диаграммы хорошо бы превратить в редактор, kак у Visual Paradigm
eduard93
27.10.2015 22:13+3Написал вам года полтора назад фич реквест, с тех пор ничего не произошло.
Хотелось бы иметь поддержку InterSystems Cache.
mIK_LH
27.10.2015 22:21+3Когда появится поддержка тригеров в Postgres?
samokhvalov
27.10.2015 22:35+1Из того, что сходу видно и очень хочется по Постгресу:
— поддержка команд \l, \d и т.д.
— синтаксис других pl-языков, не только plpgsql (другие — это, например, plv8)
Сейчас, думаю, ещё набежит фидбэк от сообщества: www.facebook.com/groups/postgresql/permalink/391784527684967moscas
28.10.2015 17:24Будем благодарны, если вы создадите feature request здесь у нас в issue tracker
voddan
28.10.2015 01:00Огромное спасибо команде за великолепный продукт! Использовал еще в ранней бетта, но даже в зачаточном состоянии 0xDBE была на голову выше чем родная студия в MSSQL. Особенно было круто работать с MSSQL сидя в линуксе. А сейчас еще и баги починили. Однозначно рекомендую!
lasc
28.10.2015 02:44MongoDb планируется? Какая цена будет? Так то под линем и dbeaver с mssql работает нормально.
И сделайте tool button включеными по умолчанию, а то минут 5 искал как список таблиц посмотреть.moscas
28.10.2015 12:00MongoDB есть в планах, но больше пока сказать не можем. Что касается цены, в конце поста есть ссылка на цены наших IDE по программе JetBrains ToolBox.
BVadim
28.10.2015 02:58Под Windows очень долго использовал dbForge Studio for MySQL. Считаю, что это лучшее решение для работы с MySQL. Всё сделано очень удобно, что сильно ускоряет работу. Но есть одно «но»: он только Windows. Моя основная рабочая ОС — MacOS, и я не видел ещё ни одного менеджера для MySQL, который хотя бы близко подошёл по удобству работы и функциям к dbForge. Сейчас использую Sequel Pro, он быстрый, достаточно удобный, его хватает для многих задач, но некоторых функций в нём очень не хватает: например нельзя отредактировать индекс. Понятно, что в любом случае нужно будет удалить его и создать новый, но когда нужно добавить поле в составной индекс — очень не удобно расставлять всё с нуля. Было бы здорово, если наконец появится достойный кросплатформенный менеджер БД. Navicat и Mysql Workbench очень далеко пока до удобства, хотя они полны функционалом.
sergmesh
28.10.2015 03:09+1Хотелось бы чтобы эта IDE была чем то средним между возможностью писать код и источником информации по структуре базы.
Написать запрос не проблема, а вот знать, что таблица в себе содержит и как она относится к другим таблицам это иногда загадка дня на три.
То есть этакая «база знаний» о базе данных. После года в продакшн и пары перешедших на другую работу dba очень тяжело искать информацию о структуре объектов.
Хорошая попытка была реализована в Toad Data Modeler, но там все мышкой и писать запросы не получится.
Хотелось бы иметь IDEA но для базы, когда все «под руками» и понятно как писать запрос для реализации поставленной задачи.
Спасибо за хорошие продукты.
FLashM
28.10.2015 05:05+2Как бы я ни ненавидел SQL Server Studio, перейти на 0xDBE пока невозможно.
Бросившиеся в глаза проблемы:
1. Не индексируются базы данных кроме дефолтной (независимо от настройки схем).
2. Невозможно нормально работать с xml-полями. Необходима возможность посмотреть отформатированный и подсвеченный xml.moscas
28.10.2015 16:541. Да, это очень важная вещь и мы планируем реализовать её в ближайших минорных релизах.
2. Будет доступна опция Edit as xml… с подсветкой. Больше информации можно найти здесь: youtrack.jetbrains.com/issue/DBE-1764
SOLON7
28.10.2015 06:36+1Жаль что Firebird не поддерживается, Но то что есть уже круто. Назовите проект Data Miner ))
GORKOFF
28.10.2015 08:53У нас на рабочем проекте при попытке просмотреть список таблиц пишет «loading...» и ничего не происходит (MS SQL Server).
moscas
28.10.2015 16:55Очень мало информации. Если вы готовы предоставить больше информации о происходящим, пожалуйста, воспользуйтесь нашим issue tracker'ом.
samokhvalov
28.10.2015 09:44> «Будем рады ответить на любые вопросы!»
Отвечать-то здесь будете на вопросы?
Allfar
28.10.2015 10:02+2Планируется ли бекпортирование фич обратно в плагины к, например, Pycharm-у и другим IDE?
moscas
28.10.2015 12:03Пока что всё, что работает в 0xDBE, доступно и в других наших IDE, которые поддерживают DataBase tools.
VolCh
28.10.2015 12:10Немножко не в тему, но при запуске PhpStorm 9 вылазит предложение перейти на IDEA c DataBase tools, типа лучше будет работать с базами. В шторме этот модуль какой-то ущербный?
moscas
28.10.2015 17:23А можеет подробней описать, в какой момент это происходит?
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 нет?
calx
28.10.2015 11:35+3По-настоящему оценить, насколько это прекрасно, можно только попробовав какой-нибудь MySQL Workbench или pgadmin.
nikolaikopernik
28.10.2015 13:21+1pgadmin — не только тулза для выполнения запросов, но и для администрирования сервера. на сколько я смог попробовать 0xDBE — нет там администрирования, т.к. это самая тяжелая часть функционала, и требует своей реализации под каждую DB
calx
28.10.2015 13:28Надеюсь, это появится.
moscas
28.10.2015 17:22+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
moscas
28.10.2015 16:52Либо так, либо можно задампить BLOB. Right Click -> Save LOB… Если у вас есть идеи, как это лучше сделать, самый эффективный способ — очень кратко изложть их в нашем issue tracker.
Что же касается описанной ошибки, какая у вас СУБД? MySQL? Успешно ли проходит Test Connection?Fr05t1k
28.10.2015 17:03Идеально было бы если загрузка блоба происходила по двойному клику на ячейке, как это сделано в большинстве подобных продуктов.
На счет ошибки:
Скрытый текстmoscas
28.10.2015 17:21Я создал issue у нас в трекере. youtrack.jetbrains.com/issue/DBE-1777
Указал там всю доступную на данный момент информацию. Будет круто, если вы приложете туда свои логи или ещё какую-нибудь полезную информацию.
Вы можете отслеживать issue и быстро узнавать, если есть какие-то новости.
Спасибо!
Vest
28.10.2015 12:12Скажите, пожалуйста, что подразумевается под названием баз данных «Sybase»? Sybase ASE, SQL Anywhere или Sybase IQ.
Я попробовал подключиться к SQL Anywhere, но оказалось, что 0xDBE, видимо, работает через jConnect, а не через JDBC-драйвер, о которым пишут тут: SQL Anywhere JDBC driver. Если что, всякие «за и против» разных драйверов хорошо описаны здесь.
Спасибо.
kikcorp
28.10.2015 14:14Не хватает выбора БД в уже установленном подключении к ms-sql, а так же выбора БД из консоли. Очень не удобно создавать по подключению для каждой базы на сервере
moscas
28.10.2015 16:26Да, это одна из тех фич, которые у нас в самых ближайших планах к реализации, это действительно важно.
gurinderu
28.10.2015 17:06moscas могу ли я попросить реализовать механизм шаринга внутри команды списка серверов?
Желательно без использования внешнего сервера и не через UDP. К примеру, чтобы члены команды указали ссылку на компьютер одного(или любого p2p) коллеги и получили весь список серверов с настройками. Ну и чтобы это все автоматически обновлялось при правках у всех.moscas
28.10.2015 17:17Конечно можете. И именно для этого у нас есть issue tracker, где мы вас происм создать feature request и всё это описать.
soroktu
У 0xDBE есть преимущества перед родственным плагином к Idea ultimate или функционал один и тот же?
moscas
Пока один и тот же. Впоследствии, возможно, 0xDBE будет уметь больше.
Borz
надеюсь под «уметь больше» будет относиться только к удобству и изначальной заточенности IDE, как например отличия между PhpStorm и IDEA+набор_плагинов.