[pgsql-jp: 25918] Re: テーブル定義書を作成するソフト

KAWAI,Takanori GCD00051 @ nifty.ne.jp
2002年 5月 14日 (火) 11:54:48 JST


川合孝典です。

----- Original Message ----- 
From: "横山敬一" <keiichi.yokoyama @ uis.co.jp>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Tuesday, May 14, 2002 10:12 AM
Subject: [pgsql-jp: 25910] テーブル定義書を作成するソフト


> いつもお世話になっております。横山と申します。
> 
> 最近、PostgreSQLを使用し始めたものです。
> そこで、ご存じの方がいらしたらアドバイス頂きたいのですが、
> よろしくお願い致します。
> 現在、DB上に複数のテーブルが存在するのですが、そのテーブル定義書
> (項目名、データ型、桁数)などをドキュメントにしたいのですが、
> このような事ができるソフトは、あるのでしょうか?
さきほどから山ほどあることは証明されたみたいですけれど(^^;;
PerlでDBIx::DBSchemaというモジュールを利用しても、かなり簡単に
作れそうです。

[単純な例]
use strict;
use DBIx::DBSchema;
my $hDb = DBI->connect('dbi:Pg:host=lins;dbname=test', 
        'postgres', '',
        {AutoCommit=>0, RaiseError=>1});
my $schema = new_native DBIx::DBSchema $hDb;
my ($sTbl, $oTbl);
my ($sCol, $oCol);
foreach $sTbl ($schema->tables()) {
    $oTbl = $schema->table($sTbl);
    print $oTbl->{name}, "\n";
    foreach $sCol ($oTbl->columns) {
        $oCol = $oTbl->column($sCol);
        printf "    %-20s %-10s %5s\n",
            $oCol->{name}, $oCol->{type}, $oCol->{length};
    }
}
$hDb->disconnect();

[実行例]
C:\temp>perl tdbix.pl
minutes
    hiduke               date
    jikan                int4
    members              varchar       64
    subject              varchar      255
    conclusion           varchar      255
    filename             int4
stqueue
    no                   int4
    name                 varchar       80
test
    name                 varchar       30

#Spreadsheet::WriteExcelと組み合わせれば、Excelファイルにも
#落とせるなぁ...

===================================================
川合 孝典 (Hippo2000)
   DBI日本語メーリングリスト管理人、Kansai.pm所属
   kwitknr @ cpan.org GCD00051 @ nifty.ne.jp
   http://member.nifty.ne.jp/hippo2000
   http://www.hippo2000.info/ 
「Perlを256倍使うための本 DBI編」 発売中
http://member.nifty.ne.jp/hippo2000/p256dbi/p256dbi.htm
===================================================



pgsql-jp メーリングリストの案内