Mysqlのスキーマと初期レコードをpdfのテーブル/マスタ定義書として書き出す

dotimpact/pdf-db-spec: mysqlの既存テーブルからpdfのドキュメントを作る


いまやってる仕事(わりと堅い)で詳細仕様書の一部としてDBのテーブル定義書を作ることになり、手でつくるのは面倒なのでDBマイグレーションツールで作成したDBのテーブルと初期データをドキュメント化する方法をいろいろ試して、最終的にMysqlのXML/HTML出力を加工してpdfにするスクリプトを作ったので公開しておいた。Mysql限定で、wkhtmltopdfも必要。

最初schema2rstを試して、Htmlドキュメントとしてはなかなかよかったんだけど、ドキュメントとして共有するのにpdf化するにはあんまり向いてなかったので、続・MySQL データベースからテーブル定義書を生成する - 私と私の猫の他は誰でも隠し事を持っているの出力をwkhtmltopdfでpdfにするアプローチにした(xsltとhtmlのスタイルはほぼそのまま使ってます。ありがとうございます)。wkhtmltopdfでレンダリングされるhtmlドキュメントのサイズがあんまりうまく制御できなかったので、--zoomで適当に拡大している。あと長いテーブルの途中で改行されるときにテーブルヘッドがちゃんと表示されるように

1
2
3
thead { display: table-header-group }
tfoot { display: table-row-group }
tr { page-break-inside: avoid }

を入れた。

あと、今回DBマイグレーションツールにPhinxを使ってみたらわりと便利でよかった。ほんとはこれのマイグレーションにフックしてドキュメントを生成できたるするといいのかな。