LoginSignup
37
46

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-04-26

こんにちは。
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だからといってカジュアルにどこぞのドキュメントルートに置いて公開しないようにお気をつけください。
普通に機密情報ですからね!

37
46
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
46