PHPackages                             kojiro526/php-dbdoc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. kojiro526/php-dbdoc

ActiveLibrary[Database &amp; ORM](/categories/database)

kojiro526/php-dbdoc
===================

Generate database documents.

1.0.1(7y ago)019MITPHPPHP &gt;=7.1.0

Since Aug 3Pushed 7y ago1 watchersCompare

[ Source](https://github.com/kojiro526/php-dbdoc)[ Packagist](https://packagist.org/packages/kojiro526/php-dbdoc)[ RSS](/packages/kojiro526-php-dbdoc/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (3)Versions (4)Used By (0)

DB定義書ジェネレータ
===========

[](#db定義書ジェネレータ)

DB定義書を既存のスキーマから生成するツールです。

特徴
--

[](#特徴)

- 既存のデータベース上のスキーマからDB定義書をMarkdown形式で出力します。
- カラム、インデックス、外部キー等の情報を出力します。
- ファイル内でツールが更新するべき場所としない場所が分離されており、ツールが更新しない場所には任意の記述を加えることができます。
- ファイル内にコメント形式で記述されたタグを元にテーブルとファイルの紐付けを行っているため、ファイル名は自由に変更することができます。

必要要件
----

[](#必要要件)

- php &gt;= 7.1.0
- composerが予め利用可能である必要があります。 （ [インストール方法](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx) ）

事前の設定
-----

[](#事前の設定)

このコマンドはcomposerでグローバルインストールして使うことを想定しているため、以下のディレクトリにパスを通して下さい。

### Linux, OSX等

[](#linux-osx等)

`.bash_profile`等に以下のパスを設定して下さい。

```
export PATH=$HOME/.composer/vendor/bin:$PATH

```

### Windows

[](#windows)

Windowsでは以下のフォルダを環境変数のPATHに設定して下さい。

```
%USERPROFILE%\AppData\Roaming\Composer\vendor\bin

```

インストール
------

[](#インストール)

```
$ composer global require kojiro526/php-dbdoc

```

本リポジトリに含まれるDockerfileを元にDockerイメージをビルドすると、環境構築の手間を省く事が出来ます。

```
$ docker build -t kojiro526/php-dbdoc .
$ docker run -it --rm -v $(pwd):/work kojiro526/php-dbdoc dbdoc-php --help

```

使い方
---

[](#使い方)

```
$ dbdoc-php --help
Database docments generator

Usage:
  dbdoc-php [options]

Options:
  -c config, --config=config        Indicate config file
  -o output, --output=output        Indicate output file or directory
  -s, --split                       Separate files one by one
  -h host, --host=host              Indicate database host
  -d dbname, --dbname=dbname        Indicate schema name
  -u user, --user=user              Indicate database user name
  -p password, --password=password  Indicate database password
  -P port, --port=port              Indicate database port
  --help                            show this help message and exit

```

以下のようにしてDBに接続し、指定したディレクトリ配下にDB定義書を出力します。

※localhostにMySQL（MariaDB）のデータベースが立ち上がっている想定です。

```
$ dbdoc-php --host=localhost --dbname=sampledb --user=root --password=hogehoge123 --port=3306 -o ./output_dir
$ ls ./output_dir
departments.md   devisions.md        profiles.md     users.md
$ cat ./output_dir/users.md
## users

### カラム定義

| No | 名前 | 型 | 主キー | 必須 | 初期値 | AI | US |
|:---|:---|:---|:---:|:---:|:---|:---:|:---:|
| 1 | id | INT | ○ | ○ |  | ○ | ○ |
| 2 | email | VARCHAR(255) |  | ○ |  |  |  |
| 3 | password | VARCHAR(255) |  | ○ |  |  |  |
| 4 | remember_token | VARCHAR(100) |  |  |  |  |  |
| 5 | deleted | DATETIME |  |  |  |  |  |
| 6 | created | DATETIME |  |  |  |  |  |
| 7 | modified | DATETIME |  |  |  |  |  |

__AI__ =AutoIncrement / __US__ =Unsigned

### インデックス

| No | インデックス | 主キー | ユニーク |
|:---|:---|:---:|:---:|
| 1 | PRIMARY ( id ) | ○ | ○ |
| 2 | email_UNIQUE ( email ) |  | ○ |

### 外部キー

```

ファイル中のコメントタグは、本ツールが更新するブロックを認識するための目印です。

本ツールを再度実行してDB定義書を更新すると、上記のブロック部分のみが更新されるため、それ以外の場所をどのように編集しても影響はありません。

Dockerを使った実行方法
--------------

[](#dockerを使った実行方法)

本ツールはPHP7.1以上を要件としており、環境によっては利用が難しい場合もあり得るため、その場合はDockerを使って実行することもできます。

本リポジトリに含まれるDockerfileをビルドしてDockerイメージを作成して下さい。

```
$ docker build -t kojiro526/php-dbdoc .

```

Dockerイメージは以下のようになっています。

- 本ツールが最初からインストール済みです。
- コンテナ内の`/work`をWORKDIRとして設定しているため、カレントディレクトリを`/work`にマウントするなどして使って下さい。

```
$ docker run -it --rm -v $(pwd):/work kojiro526/php-dbdoc dbdoc-php --host=docker.for.mac.localhost --dbname=sampledb --user=root --password=hogehoge123 --port=3306 -o ./output_dir

```

※コンテナ内からローカルPC上の`localhost`にアクセスするためには`、docker.for.mac.localhost`（Windowsの場合は`docker.for.win.localhost`）と指定する必要があります。（そうしなければ、コンテナ内の`localhost`を参照してしまいます）

サンプル
----

[](#サンプル)

本リポジトリに含まれるdocker-compose.ymlはコマンドの実行環境とサンプルDBを含んでおり、気軽に動作を試すことが出来ます。

サンプルの環境は以下のように実行して下さい。

```
$ docker-compose up -d

```

### サンプルDB

[](#サンプルdb)

上記のコマンド実行後、以下の場所にあるSQLが自動的に実行されてサンプルDBが作成されます。

```
./example/db/init/schema.sql

```

### サンプルDBのドキュメント生成

[](#サンプルdbのドキュメント生成)

以下のようにサンプルDBのドキュメントを`./tmp`配下に出力できます。

```
$ docker-compose exec php dbdoc-php --host=db --dbname=sampledb --user=root --password=hogehoge123 --port=3306 -o ./tmp/
$ ls ./tmp/
devisions.md        profiles.md     users.md    departments.md

```

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~8 days

Total

2

Last Release

2882d ago

PHP version history (2 changes)1.0.0PHP &gt;=5.6.0

1.0.1PHP &gt;=7.1.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2546003?v=4)[Kojiro](/maintainers/kojiro526)[@kojiro526](https://github.com/kojiro526)

---

Top Contributors

[![kojiro526](https://avatars.githubusercontent.com/u/2546003?v=4)](https://github.com/kojiro526 "kojiro526 (28 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kojiro526-php-dbdoc/health.svg)

```
[![Health](https://phpackages.com/badges/kojiro526-php-dbdoc/health.svg)](https://phpackages.com/packages/kojiro526-php-dbdoc)
```

###  Alternatives

[martin-georgiev/postgresql-for-doctrine

Extends Doctrine with native PostgreSQL support for arrays, JSONB, ranges, PostGIS geometries, text search, ltree, uuid, and 100+ PostgreSQL-specific functions.

4585.8M4](/packages/martin-georgiev-postgresql-for-doctrine)[flow-php/doctrine-dbal-bulk

Bulk inserts and updates for Doctrine DBAL

14385.8k4](/packages/flow-php-doctrine-dbal-bulk)[oat-sa/tao-core

TAO core extension

66143.7k119](/packages/oat-sa-tao-core)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k12](/packages/2lenet-crudit-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
