簡単ですね。
get_table_info.pl
#!/usr/local/perl5.8.7/bin/perl use Data::Dumper; use DBIx::Class::Schema::Loader; my $tmp_pkg = 'Temp::Schema'; push @{$tmp_pkg . '::ISA'}, qw/DBIx::Class::Schema::Loader/; $tmp_pkg->loader_options(relationships => 1); my $c = $tmp_pkg->connect(@ARGV); my $mapping = $tmp_pkg->class_mappings; foreach my $k (keys %$mapping){ print Dumper({$k => [ {class => $mapping->{$k}}, map {$_, $k->column_info($_)}$k->columns ]}) }
下記のようにして使います。
./get_table_info.pl dbi:mysql:hogehgoe user
出力例はこんな感じ。
$VAR1 = { 'Temp::Schema::Task' => [ { 'class' => 'Task' }, 'task_id', { 'data_type' => 'INT', 'default_value' => undef, 'is_nullable' => 0, 'size' => '11' }, 'name', { 'data_type' => 'VARCHAR', 'default_value' => undef, 'is_nullable' => 1, 'size' => '255' } ] };