🌾
<dbine>データベースにログインしてテーブル定義の関係性をER図ライクなイメージとしてPDF/画像出力するPythonパッケージを開発
コンセプト
データベーステーブル定義をPDF出力
データベーステーブル定義(MySQL)
DROP DATABASE IF EXISTS db;
CREATE DATABASE db;
DROP USER IF EXISTS _user_;
CREATE USER _user_ IDENTIFIED BY 'pass';
GRANT ALL ON db.* TO _user_;
DROP TABLE IF EXISTS no_comments;
CREATE TABLE no_comments (
id INT PRIMARY KEY,
name VARCHAR(10)
) COMMENT 'コメントなしテーブル';
DROP TABLE IF EXISTS with_comments;
CREATE TABLE with_comments (
id INT PRIMARY KEY COMMENT 'ID',
name VARCHAR(10) COMMENT '名前'
) COMMENT 'コメントつきテーブル';
DROP TABLE IF EXISTS relations;
CREATE TABLE relations (
id INT PRIMARY KEY COMMENT 'ID',
no_comment_id INT COMMENT 'コメントなしテーブルのID',
with_comment_id INT COMMENT 'コメントつきテーブルのID'
);
PDF(PNG)
できること
- データベースにログインしてテーブル定義情報を取得
- テーブル定義情報をER図ライクなイメージとしてPDF出力
- PDFを画像に変換
開発理由
- データベースのテーブル定義の関係性を一目で理解できるようにPDFや画像で出力したい
サポート対象データベース
- PostgreSQL
- MySQL
インストール
dbine
pip install dbine
Graphviz
PDF出力に必要
Poppler
PDFの画像変換に必要
CLI
pdf.write
1. データベース接続情報ファイル(database.yaml)を用意
[database.yaml]
Type: MySQL
DatabaseName: db
UserName: _user_
Password: pass
Host: localhost
Port: 0
2. CLI実行でPDF書き出し
dbine pdf.write database.yaml database.pdf
pdf.convert
1. CLI実行で画像(PNG)変換
dbine pdf.convert database.pdf database.png
Discussion