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