Edited at

[MySQL]コマンドだけで、HTML形式のテーブル定義書を作成する

More than 1 year has passed since last update.

こんにちは。

ER図もテーブル定義書もない。

取り急ぎ、テーブル定義書だけでも欲しいよー。

ということで、 コマンドだけでテーブル定義書 を作成してみます。


前提

mac, もしくはlinuxで実行します。


テーブル

ユーザーとその嗜好を保持するテーブルを作りました。

mysql> CREATE DATABASE mamy1326;

Query OK, 1 row affected (0.00 sec)

mysql> USE mamy1326;
Database changed

mysql> CREATE TABLE m_user (
-> user_id bigint unsigned NOT NULL AUTO_INCREMENT,
-> family_name varbinary(100) NOT NULL COMMENT '姓',
-> first_name varbinary(100) NOT NULL COMMENT '名',
-> birth_day date NOT NULL COMMENT '生年月日',
-> PRIMARY KEY (user_id)
-> ) COLLATE utf8mb4_bin;
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TABLE wishlist (
-> wishlist_id bigint unsigned NOT NULL AUTO_INCREMENT,
-> user_id bigint unsigned NOT NULL COMMENT 'ユーザーID',
-> item_name varbinary(100) NOT NULL COMMENT '欲しい物の名前',
-> created_at datetime NOT NULL COMMENT '作成日',
-> FOREIGN KEY(user_id) REFERENCES m_user(user_id),
-> PRIMARY KEY (wishlist_id)
-> ) COLLATE utf8mb4_bin;
Query OK, 0 rows affected (0.02 sec)


概要

xml形式でdumpしたcreate tableのDDLに、xslでスタイルを指定し、html化します。

xslファイルは自力またはどこかから拝借する必要がありますが、基本的にコマンドのみで完結します。


お手本

私と私の猫の他は誰でも隠し事を持っているさんの

続・MySQL データベースからテーブル定義書を生成する

をお手本とさせて頂きました。感謝!


手順


1.以下のコマンドでDDLを出力

$ mysqldump --no-data --xml -u root -p mamy1326 > mamy1326.xml


2.スタイルを用意

お手本のサイトで公開されている、以下のページの右テキストボックスから拝借致しました。

MySQL テーブル仕様書メーカー

サンプルとしても十分すぎるスタイルでしたので、そのまま使わせて頂いてます。

デザイン変更する場合は適宜、編集してください。


3.スタイルをファイル保存

「2.」で取得したXSLTを、 style.xsl として保存します。

今回はGitHubに公開したので、cssファイルのURLをhttpsに変更しています。


4.以下のコマンドを実行し、htmlファイル出力

$ xsltproc -o mamy1326_tables.html style.xsl mamy1326.xml


利用方法

普通のHTMLファイルなので、ローカルからブラウザで実行します。

HTMLファイルダブルクリックでも、ブラウザURLから file:///Users/mamy1326/mamy1326_tables.html などでもいいと思います。

今回作ったもろもろは以下に公開しています。

https://github.com/mamy1326/create_mysql_tables_doc

直接ページで確認したい場合はこちら


課題

サクッと作れると定義のチェックにもなるので、シェルで一発作成しとくといいかもですね。


ご注意

やらないと思いますが、HTMLだからといってカジュアルにどこぞのドキュメントルートに置いて公開しないようにお気をつけください。

普通に機密情報ですからね!