Статьи

0xDBE: первый взгляд

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

0xDBE — это попытка Jetbrains сделать все правильно. Не позволяйте имени сбить вас с толку — оно не окончательное. DBE означает «Среда базы данных», а 0x — просто джеб в шестнадцатеричном представлении того же самого. В этой статье я рассмотрю версию EAP — обратите внимание, что все еще может быть изменено, и Jetbrains все еще собирает отзывы и запросы функций (уже более 400 в системе отслеживания проблем !), Прежде чем они опубликуют первую официальную версию. выпуск.

Обратите внимание, что я буду использовать этот инструмент как конвертер Workbench / PhpMyAdmin и поэтому не может быть полностью объективным в этом вопросе. Смысл первого поста о впечатлениях, однако, не должен быть объективным в любом случае. Я буду выполнять некоторые очень элементарные задачи с помощью инструмента и в некотором смысле сравнивать их с основным конкурентом — верстаком. Также обратите внимание, что EAP, который я буду тестировать в этом случае, имеет версию 138.551.

Поддерживаемые движки базы данных

0xDBE будет поддерживать все основные механизмы SQL в версии 1 — это одна из вех, которую не могут похвастать многие инструменты управления БД. Первоначально поддержка будет ограничена: MySQL, PostgreSQL, Oracle, Sybase, DB2, SQLite, SQL Server, HyperSQL, Apache Derby, ODBC и H2, а также планируется поддержка NoSQL для будущих версий.

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

Первый взгляд

Запуск приложения дает тот же опыт, который вы используете для всех продуктов JetBrains — для них ключевой является согласованность, а все их продукты, основанные на платформе IntelliJ, делают его довольно простым для реализации. Сразу же нас спрашивают, хотим ли мы импортировать некоторые старые настройки в новое приложение, после чего мы выбираем тему. Привыкнув к теме Darcula на PHPStorm, я выбрал эту, хотя потом все меняется.

Следующий шаг предлагает выбор стилей окна редактора, после чего я снова выбираю Darcula, когда он, наконец, предоставляет мне выбор предпочтительных диалектов SQL. Этот инструмент поддерживает широкий спектр механизмов БД, и поэтому мне нужно спросить меня о моих предпочтениях по умолчанию при работе с базами данных — Oracle, в конце концов, несколько отличается от MySQL, например. Вы можете оставить это в «Generic» для автоопределения и общего использования SQL, но в этом случае я выбрал MySQL, поскольку именно эту базу данных я собираюсь использовать сейчас.

Источником данных по умолчанию, к которому я подключаюсь, является стандартное соединение MySQL от Laravel Homestead. Согласно документации Homestead, комбинация имени пользователя и пароля — это hometead / secret, а порт, к которому я подключаюсь, — 33060. Давайте попробуем.

Драйверы

Когда вы войдете в меню «Новый источник данных» и выберете «MySQL», вы сможете ввести параметры соединения, но не сможете инициировать соединение. Это связано с тем, что драйверы MySQL еще не установлены в 0xDBE — для простоты и скорости работы инструмент лишен ненужных драйверов, пока они не понадобятся. Установить их так же просто, как щелкнуть ссылку на скачивание рядом с предупреждением «Missing Drivers»:

Это позволяет 0xDBE быть быстрее, чем конкуренты с самого начала. Предотвращая — не уменьшая — раздувание, они убедились, что вы используете только то, что вам абсолютно необходимо, и в то же время позволяете вам легко получить необходимые дополнения одним щелчком мыши.

Создание БД

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

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

Мы уже заметили некоторое сверхбыстрое автозаполнение для команд SQL — ничего, к чему мы не привыкли из других инструментов JetBrains. Сравнивая скорость автозаполнения с Workbench, 0xDBE опережает ее. Тем не менее, мы увидим, как это работает в реальной заполненной базе данных.

Создание таблицы

Диалог создания таблицы разочаровал. Хотя довольно приятно видеть, что запрос формировался до меня, в нем отсутствовали общие параметры, такие как «unsigned», «auto increment» и другие, присутствующие, например, в Workbench:

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

К сожалению, нет визуального компоновщика моделей, как в Workbench, — помимо нестабильности и устаревания этого приложения, компоновщик моделей — один из самых полезных инструментов проектирования баз данных, с которыми я когда-либо сталкивался, и я использую его довольно регулярно. Тем не менее, JetBrains заявили, что намереваются выпустить некоторые визуальные инструменты с 1.0, а другие с более поздними версиями — так что они определенно в планах.

Тестирование на реальной БД

Чтобы должным образом протестировать функциональность среды IDE, я решил импортировать старую резервную копию базы данных, от которой отказались, которую я нашел лежащей у меня на работе на старой работе. Разархивированный, он сводится к приличным 1,3 ГБ, что должно быть достаточно для приличного использования.

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

Импортировав данные, я попытался выполнить несколько запросов в связанных таблицах FK, сосредоточившись на таблицах с наибольшим количеством строк. Я обнаружил, что хотя результаты казались молниеносными, им не хватало информации, которую я хотел бы знать. Например, нигде не найдено общего числа строк — вам нужно сделать отдельный СЧЕТ, чтобы получить это.

Начальное впечатление

Хотя автодополнение действительно молниеносно, а возможность автоматически форматировать запросы, чтобы выглядеть хорошо, бесценна, все это в основном косметические функции, которые не восполняют недостаток функциональности. Некоторые области, в которых он выделяется, — это простота экспорта — вы можете мгновенно скопировать любой набор результатов в файл SQL, CSV, TSV, XML или JSON или даже в таблицу HTML прямо из контекстного меню. Наличие встроенных ошибок при написании запроса — это то, чего не хватает во всех редакторах SQL, а предупреждение об ошибке до того, как вы попытаетесь выполнить ее, значительно экономит время. Также имеется возможность переименовывать столбец таблицы во всех ее экземплярах — от комментариев до внешних ключей, сразу, во всех случаях — также это значительно экономит время. Редактор таблиц очень удобен и интуитивно понятен при внесении изменений непосредственно в данные.

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

Я пока не буду использовать этот инструмент для своих проектов, но я обязательно буду следить за ним и тщательно тестировать все будущие EAP, по крайней мере, со стороны MySQL и PostreSQL. Как насчет тебя? Вы дали EAP идти? Ваше мнение?