<rmcreative>

RSS

PhpStorm Database Navigator

19 августа 2011

При работе с базой данных удобно рассматривать её структуру визуально. В идеале прямо из IDE. Хорошо-бы ещё и выполнять SQL и рассматривать результаты выполнения запроса табличкой в той же IDE. Данные задачи замечательно решаются в PhpStorm установкой плагина Database Navigator. Для тех, кто никогда не работал с Java и JDBC настройка не совсем тривиальна. Покажу как настроить для MySQL:

  1. Идём в IDE Settings → Plugins → Available.
  2. Ищем Database Navigator, делаем Download and Install.
  3. Сливаем с этой страницы архив коннектора JDBC. Находим там .jar и извлекаем в удобное место.
  4. Перегружаем IDE.
  5. Project Settings → Database Navigator → Connections.
  6. Добавляем соединение, в Driver Library прописываем путь к .jar.
  7. В URL прописываем jdbc:mysql://127.0.0.1:3306. Сохраняемся.

Всё, теперь можно пользоваться:

  • Из главного меню DB Navigator → Open SQL Console… доступен редактор SQL с возможностью запуска этого самого SQL.
  • Если открыть вкладку DB Browser слева, получим неплохой способ визуально рассматривать схему.

Комментарии RSS

  1. №5203
    biakaveron
    biakaveron 19.08.2011, 22:46:15

    Мне не особо понравился.

  2. №5204
    Sam
    Sam 19.08.2011, 22:52:58

    Смотря с чем сравнивать. К тому же, плагин активно развивается.

  3. №5205
    yareg
    yareg 20.08.2011, 2:03:14

    Уж во всяком случае поприятнее воркбенча...

  4. №5206
    Stamm
    Stamm 20.08.2011, 13:48:09

    А я пользуюсь sqlyog. Под линуксом отлично запускается под wine.

  5. №5207
    Максим
    Максим 20.08.2011, 16:10:38

    Чего-то и мне не понравилось, пробовал еще пару месяцев назад. Sql Front как-то поудобней, хотя и с глюками.

  6. №5208
    yareg
    yareg 20.08.2011, 18:32:10

    Только нужно соединение дективировать, если нет постоянного коннекта к базе - шторм инициализируется минут 5 наверное :(

  7. №5209
    Sam
    Sam 20.08.2011, 21:44:39

    Я использую для подсматривания при написании кода. Удобно т.к. второго монитора сейчас у меня нет.

  8. №5210
    Nikolay Matveev
    Nikolay Matveev 20.08.2011, 22:06:05

    А почему 'Tools' -> 'Data Sources' не используешь?

  9. №5212
    Sam
    Sam 21.08.2011, 2:43:08

    Опа :) Как-то пропустил Data sources, надо чаще help читать… Посмотрел. Как я понял, Data sources — штука официальная. Репорты и предложения принимаются? В какой из трекеров?

    Небольшое ревью

    1. Драйвер JDBC ставится автоматически, что много более приятно, чем в Database Navigator.
    2. В Database URL всё-ещё прописывается DSN jdbc, однако в выпадающем списке есть пара примеров для выбранного драйвера.
    3. Умеет работать с однй схемой, а не со всеми сразу.
    4. Не отнимает время чтением схемы. Вот это самое гадкое в Database Navigator. Как я понял в Data Sources, она перечитывается исключительно руками. Жаль, что только вся сразу. Неплохо было бы получить перечитывание для конкретной таблицы.
    5. Поддерживает drag & drop названий столбцов и таблиц в код.
    6. Не показывает внешние ключи, индексы, триггеры.
    7. Очень плохое оформление: значки, контекстные меню, UI.
    8. Менее удобная SQL-консолька: UI хуже, нет автокомплита по схеме (default схему и диалект задал), не сильно красивый вид результата выборки (в хелпе всё красиво) и редактор данных.

    И ещё чуть о наболевшем по поводу плагинов:

    1. Совершенно не ясно, что делают многие плагины. Например, Extended Code Sense. Описание гласит «Provides some platform code-sense functionality enhancements». Какие именно улучшения не ясно. В репозитории на GitHub, на который, кстати, в описании плагина битая ссылка намёков тоже нет + судя по репортам оно вообще в последнем PhpStorm некорректно работает. Из той же серии: Refactor-X, JavaScript Intention Power Pack
    2. В плагинах показываются явно не подходящие для PhpStorm вещи. Например, Injector: «Provides fast Ruby code injections into erb files». Поддержки Ruby в PhpStorm нет…
  10. №5213
    Максим
    Максим 21.08.2011, 13:05:59

    2Sam, по поводу плагинов:

    1. там если прокрутить вниз описание - еще больше неясностей.
    2. не натыкался.
    3. По поводу БД самым оптимальным был бы плагин для нормальной поддержки коммандной строки, то есть чтоб было реально запустить внизу в доке (в сворачиваемой панельке, там где find вылазяет) любую комманду, даже какой-нить mysql клиент(официальный, например). Это было бы очень удобно и с yiic shell
  11. №5214
    Sam
    Sam 21.08.2011, 16:32:51

    С командной строкой описанное возможно. Для этого нужно пройти Project Settings → Command Line Tool Support и там выбрать Show console in: tool window. Единственное, там с фокусом проблема: после ввода команды фокус переходит на последнюю строку вывода. Если вводить последовательно несколько команд — неудобно.

  12. №5215
    Максим
    Максим 21.08.2011, 16:47:16

    2Sam, Как приятно когда знающий английский человек подскажет :) Спасибо огромное. Только жаль что фич типа powershell не заюзать, там автодополнение классное.

  13. №5216
    Максим
    Максим 21.08.2011, 16:48:40

    А не, можно, но, через нестардартный способ.

  14. №5217
    NickSun
    NickSun 21.08.2011, 18:04:30

    Я че-то сначало было подумал что мне наприсует все таблицы со связями, увы ...

  15. №5218
    mrix
    mrix 21.08.2011, 19:07:00

    Я использую dbForge Studio (http://www.devart.com/ru/dbforge/mysql/studio/). Намного удобнее.

  16. №5220
    Nikolay Matveev
    Nikolay Matveev 22.08.2011, 11:43:53

    @Sam Предложения и баги можно писать в трекер PhpStorm\WebStorm. Спасибо большое за фидбек!

  17. №5221
    Shaverdova Elena
    Shaverdova Elena 22.08.2011, 16:09:01

    @Sam Создала два ишью по предложениям: ввод в тулвиндоу по умолчанию и фокус всегда в поле ввода команд. За них можно голосовать.

  18. №5222
    Sam
    Sam 22.08.2011, 19:01:47

    Nikolay, Elena, остальное тогда на неделе оформлю как надо в трекер, если там ещё этого нет.

  19. №5223
    karagodin
    karagodin 23.08.2011, 8:06:35

    @Sam Data Source не только в консоли поддерживает автодополнение для имен столбцов и таблиц, но и в строковых константах где есть sql-запросы

  20. №5224
    Sam
    Sam 23.08.2011, 18:06:31

    karagodin, я его так и не смог заставить что-либо дополнять.

  21. №5225
    karagodin
    karagodin 23.08.2011, 19:02:19

    @Sam там есть неочевидная настройка в свойствах проекта "SQL Dialects" где для корневой папки (ну или любой другой нужной) нужно поменять диалект с generic на MySQL. И должна быть выбрана дефолтная база. А для консоли вроде диалект отдельно нужно выбрать в настройках самого Data Source.

  22. №5226
    Sam
    Sam 24.08.2011, 15:57:11

    Поменял и задал. Я об этом выше написал: «default схему и диалект задал».

  23. №5242
    Typo
    Typo 27.08.2011, 0:14:27

    Извините за тупые вопросы, но что значит ЕАР и если я хочу обновиться 2->2.1.2, то нужно ли заново ставить (и сохранятся при етом настройки)?

  24. №5246
    Sam
    Sam 28.08.2011, 3:04:30

    Typo, EAP — Early Access Program. Билды отсюда. Предназначены прежде всего для тестирования, могут содержать разной степени страшности глюки, и предназначенные в первую очередь для тестирования и сообщения об ошибках сюда. На практике критические ошибки в них бывают редко, даётся 30-дневный триал, который следующей сборкой продлевается, ну и повлиять на разработку любимой IDE, написав свои идеи в трекере проекта — это интересно и полезно.

    Некоторые версии обновляются сами, некоторые нет. При установке поверх настройки вроде сохраняются.

  25. №5309
    Дмитрий
    Дмитрий 05.09.2011, 18:15:42

    И Data Sources и DB Navigator одинаково падают при попытке просмотреть таблицу, в которой есть поля DATETIME - вылазит явовый эксепшен что данное поле не может быть представлено как java.sql.Timestamp. :-(

  26. №5311
    Sam
    Sam 05.09.2011, 21:10:02

    Дмитрий, рекомендую сделать доброе дело и засабмитить описание.

  27. №5332
    Дмитрий
    Дмитрий 13.09.2011, 15:21:24

    [оффтоп]Да я им больше двух десятков багов и пожеланий туда набил. Но практически ничего из них не пофиксили. Обидно. :(

    По некоторым предложениям были яростные споры. У меня создалось впечатление, что ребята не совсем понимают что такое PHP и используют к нему "Явовский подход"(подход, характерный для компилируемых языков - пихание всего кода в минимальное количество файлов), который здесь совершенно неприемлем. [/оффтоп]

    Кстати, мне на мыло не приходят уведомления о новых комментариях. Это баг или я что-то не так делаю?

  28. №5335
    Sam
    Sam 13.09.2011, 22:33:45

    Дмитрий, если не отклонили запросы, шанс на фикс есть. В случае отсутствия запросов шансы нулевые.

    В спаме посмотрите.

  29. №6075
    Евгений
    Евгений 27.03.2012, 1:54:39

    Здравствуйте, хотел поставить описанный плагин, но самая новая версия phpstorm его не поддерживает (

    Но хочется поставить все таки что-то подобное. Установил плагин Sql Code Assistant. Не могу настроить, при соединении выпадает ошибка. Кто сталкивался с настройкой помогите пожалуйста.

  30. №6078
    Sam
    Sam 28.03.2012, 0:02:51

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

  31. №7870
    Mazaj
    Mazaj 01.05.2013, 9:35:29

    Sam, я правильно понимаю, из Data Sources нельзя выполнять запросы на изменение структуры бд, например alter table, только на выборку/правку самих данных? у меня так. может галочку где то надо поставить?

  32. №7871
    Sam
    Sam 01.05.2013, 11:21:10

    Mazaj, нет, всё можно через Tools -> Data Sources.

  33. №7874
    Mazaj
    Mazaj 01.05.2013, 19:06:50

    спс)

  34. №8649
    hazarat
    hazarat 01.12.2013, 15:53:56

    Спасибо, помогло.

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.