Mysql Documentor — простая утилита для документирования баз данных Mysql 5+

    Как мы дошли до жизни такой

    Тут мы хотели вставить красивую и короткую презентацию из Slideshare, но она, кажется, не понравились НЛО =)

    Что умеет

    Mysql Documentor читает схему данных, комментарии к таблицам и полям, а затем при помощи несложного шаблона Smarty генерирует html-описание.

    Сегодня MyDoc умеет:
    • строить список таблиц с комментариями;
    • строить список полей каждой таблицы с комментариями;
    • для каждой таблицы строить список ключей;
    • при наличии внешних ключей делать ссылки с полей на связанные таблицы;
    • работать на всех платформах, на которых работает php с расширением mysqli;
    • smarty-синтаксис шаблонов позволяет строить документацию любого дизайна и формата (в том числе не html);
    • удобно настраивается прямо в запускающем скрипте.

    Что не умеет, но скоро будет

    • нет статистики по таблицам и полям;
    • никак не обрабатывается и не строится документация по триггерам и хранимым процедурам.

    Что ещё в ближайших планах

    • группировка таблиц на основании тэгов из комментариев;
    • вывод схемы БД в формате Graphwiz.

    Как получить

    Просто скачайте его с нашего сайта (там же есть пример построенной документации).

    Как это заставить работать

    Вообще-то заставлять никого не придётся. Достаточно заглянуть в файл README.TXT (он сейчас по-английски) и выполнить нехитрые инструкции. Вам потребуется всего пара минут.

    И, что, бесплатно?

    Да. Mysql Documentor распространяется в исходных текстах на условии лицензии GPL. Кстати, на info@softuniq.com можно (и нужно!) присылать свои контрибьюты. Svn-репозиторий скоро будет.

    Что дальше?

    Разработка утилиты идёт полным ходом. За новостями удобно следить, подписавшись на RSS-ленту нашего уютного бложега. =)

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

      0
      Просто скачайте скачайте его с нашего сайта
      исправьте
        0
        спасибо =)
        +2
        Интересно.
        Нагляднее любых презнтаций было бы демо её работы.
        Не могли бы вы показать результат по какой-нибудь БД?
        0
        Презентация ни о чем. Одни слова. Где презентация утилиты?
        Сайта лежит «Internal Server Error».

        Стоит ли вообще на это тратить свое время?
          0
          Экспериментировал с mod_rewrite, а вы как раз увидели кратковременное помутнение =) Сейчас уже всё хорошо. Спасибо, что заметили и сказали.
          0
          Поздравляю, поздравляю от всей души, но в любой нормальной IDE да і в Браузерах БД видно все то же самое и даже больше. Зачем лишние телодвижения?
            0
            История создания MyDoc очень проста: рядом с документацией по коду, сгенерированной phpDocumentor-ом, нужно было положить такую же по БД, либо зайти на вики и описать всё там.

            Что удивительно, автоматически построенные статические страницы, на которых нет ничего лишнего, почему-то всем понравились больше.
              0
              О, так-то лутчше :) Значит тулза для создания документации по своим продуктам, с этой точки зрения очень полезно.
              Спасибо за коментарий
                0
                В общем-то можно и по чужим =). Главное, чтобы был доступ к схеме данных и к схеме mysql_schema.
                  0
                  Я старался быть политкоректным ;) Естественно по чужим тоже :) У нас в СНГ с интелектуальной собственностью не будет никогда все нормально.
                  Страна в которой мы родились нас так воспитала — все общее — слава СССР ;)
                    0
                    Слава роботам! считаю =)
            +2
            А на мой взгляд идея отличная, вот только над интерфейсом может немного поработать, сделать более наглядным.
            Как вариант, сделать таблицу-дерево, типа www.hanpau.com/index.php?page=jqtreetable
              0
              Мы уже планируем выдавать схему в виде дерева на Graphwiz и в примерно в таком виде, в котором хотите вы. Нужно только подождать одного из ближайших апдейтов.
            • НЛО прилетело и опубликовало эту надпись здесь
                +2
                Мне очень нравится dbForge Studio. Он бесплатен для некоммерческого использования и много что умеет. В том числе и сравнивать схемы. Причём делает это очень неплохо и гибко. Кстати, у них есть вообще отдельный продут для сравнения и синхронизации схем.
                  0
                  продут = продукт

                  =)
                0
                эх, ну когда же включат в ms sql комментирование полей…
                  0
                  о как. а его разве нет?
                    0
                    я не встречал к сожалению. а как хорошо было бы, если разработчик имел возможность пояснить каждое поле, для чего итп. в самой базе. чтобы не приходилось обращаться к ЕР диаграммам
                      0
                      habrahabr.ru/blogs/i_am_advertising/56883/#comment_1526770

                      промахнулся со ссылкой «ответить» и ответил не в трэд =(
                        0
                        ага, тоже нашел там, но это несколько не удобно, было бы лучше если добавить возможность просматривать сразу. допустим выбирать нужные столбцы свойств, чтобы отображалось сразу после длины, например
                          0
                          Можно сделать селект к системной табличке sys.extended_properties. ;)
                        +1
                        Оно там есть. ;) Могу даже скриншотик приложить, когда на работе буду.
                          0
                          Скриншотик это интересно, да =)
                            0
                            Придется ждать до понедельника. Но могу на словах объяснить: в студии жмете на таблицу правой кнопкой, потом «Изменить», и тыкаете на любой столбец. В его свойствах есть «Описание», у нас, в частности, широко используется.
                              0
                              Как вы считаете, имеет смысл сделать ридер для схем ms sql, учитывая то, что он на php? Или лучше сделать версию на, скажем, c#?
                                0
                                Лучше на php, я думаю. Исключительно опираюсь на опыт своей работы — в нашей конторе кроме Денвера на моем компьютере, вообще Апач нигде не стоит. А она (контора) не маленькая. :) Ну и конечно, приложением для десктопа пользоваться удобнее.
                                  0
                                  Ой, ошибся словом. Лучше на C#.
                                    0
                                    Апач для запуска утилиты не нужен — достаточно просто положить куда-нибудь php =)

                                    Но из студии, наверное, лучше запускать экзешник, а ридеры/рендеры делать либами на C#?
                                      0
                                      Как не нужен?) Или я чего-то не понимаю, или php-скрипты просто так из проводника не работают? Лучше отдельной софтиной, чтоб тыкать на красивый ярлычок, и самому еще дописывать комменты. :)
                                        0
                                        Да, php-скрипты можно запускать и из проводника или ярлыком. Собственно, в корне дистрибутива есть cmd-скрипт, который вызывает стартер. Но php должен быть установлен на машине (то есть дистрибутив php должен быть раззипован в какую-то папку и, желательно, прописан в %path%).

                                        Php довольно давно уже вырос из штанишек «скриптовалки для страницек» =)
                                          0
                                          А, блин! Вот я торможу… Апач — это ж вебсервер, а для работы php нужен php. :)) Но все равно, преимущество у C#, чтоб не ставить и не прописывать ничего лишнего.
                                    0
                                    Как вы считаете, имеет смысл сделать ридер для схем ms sql, учитывая то, что он на php? Или лучше сделать версию на, скажем, c#?

                                    пишите на Java, только в комплект положите сразу несколько вариантов драйверов ибо все они имеют собственные недостатки.
                                    на PHP работать с MS SQL дело гиморное(хотя может новые дрова что и поменяли), до сих пор без слез не могу вспоминать.

                                    c# тоже хорошо, ноприйдется следить за совместимостью с mono (не всегда наличие базы MS SQL говорит о возможности запуска виндовых утилит, вполне возможны ситуации когда к окнас-серверу доступа нет, есть только к БД, тут то и пригодится кроссплатформенность)
                                      0
                                      Спасибо за советы. Про Java тоже были мысли, да.
                                  +1
                                  В общем, вот:
                        0
                        я просто с ms sql ещё не имел удовольствия работать. даже и не думал, что такой серьёзный продукт может как-то обходиться без возможности комментирования полей, если честно =)

                        вообще MyDoc написан таким образом, чтобы ему было всё-равно, что считывать и через что рендерить документацию. в случае с ms sql, можно бы было создать в схеме, например, служебную таблицу field_comments в которую писать комментарии к полям, а ридер схемы обучить этой таблицей пользоваться. правда средства управления эт овсё поддерживать не будут и для удобного комментирования всё-равно пришлось бы использовать какую-то свою тулу. но, в принципе, задаче вполне решаема и без помощи майкрософта =)
                          0
                          вот спасибо большое! очень полезная утилита.
                            0
                            пожалуйста. =) было бы здорово, если бы вы как-нибудь рассказали, как применили.
                            0
                            А вот я пользуюсь
                            PowerDesigner уже лет 10. Отличная программа. И умеет делать обратное построение схемы, существующей базы банных. Может и строить красивые отчеты по схеме, включая и триггера и процедуры. Программа для профессионалов — советую всем.
                              0
                              Power Designer — совершенно потрясающая штука, но дороговата, всё же =)
                                0
                                dev.mysql.com/workbench/
                                Кросплатформенность является ну очень большим плюсом.
                                Кроме того, сохранённый данной программой файл является зазипованным xml'ем. Можете хоть свой редактор написать :)

                                Ваше решение тоже имеет право на жизнь, но мне намного удобнее видеть схему бд ввиде «табличек и стрелочек», нагляднее.
                                  0
                                  Mysql Workbench это всё же «visual database design tool». Mysql Documentor — утилита для построения документации по БД. У них несколько разные задачи.

                                  Тем не менее, в одном из ближайших релизов мы планируем и показать иерархию связей таблиц, и генерацию картинки на Graphwiz.
                              +1
                              1. Когда, примерно, ожидать следующую версию?
                              2. Будет ли поддержка 4 (<4.1) ветки MySQL?

                              Код написан грамотно, приятно смотреть. Спасибо, за кодес.

                                +1
                                1. Через несколько дней. Скорее всего в понедельник.

                                2. Мы пока не планируем по трём причинам. Первая — мы работаем с 5.0 и нам не нужно. Вторая заключается в том, что mysql_schema появилась только в 4.1 (или даже в 5.0, сейчас не вспомню), поэтому существующий Reader не умеет работать с ранними версиями Mysql. Третья причина — пока кроме вас никто этим не заинтересовался.

                                Кстати, вы можете самостоятельно написать ридер, который будет использовать конструкции типа 'show tables' и читать старые схемы. Если соберётесь писать, но что-то будет не понятно, то пишите, с удовольствием вам отвечу.

                                Спасибо за комплимент по поводу кода =)
                                  0
                                  Похоже, сегодня (во вторник) новой версии тоже не будет — несколько занят основной работой. На неделе сделаем. =)

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

                                Самое читаемое