🌾

<dbine>データベースにログインしてテーブル定義の関係性をER図ライクなイメージとしてPDF/画像出力するPythonパッケージを開発

2024/12/13に公開

コンセプト

データベーステーブル定義を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)

できること

  1. データベースにログインしてテーブル定義情報を取得
  2. テーブル定義情報をER図ライクなイメージとしてPDF出力
  3. 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