[Rio-pm] Usando DBIx::Class::Schema::Loader com DBD::CSV

Donato Azevedo donatoaz em gmail.com
Quinta Junho 2 16:12:54 PDT 2011


Pessoas,

Gostaria de usar o DBIx::Class::Schema::Loader para gerar um squema para um
banco em que cada tabela está em um arquivo tipo CSV (o delimitador, no
entando é \t )

No caso do DBD::CSV, existe uma particularidade que é eu defino as tabelas
através de driver flags, ou seja, eu tenho de passar quais as tabelas no
dsn...

Eu tentei o seguinte com o DBIx::Class ::Schema::Loader:

<code>
use DBIx::Class::Schema::Loader qw/ make_schema_at /;

make_schema_at(
      'SIATAB::Schema',
      { debug => 1,
        dump_directory => './lib',
      },
      [ 'dbi:CSV:f_dir=.;csv_sep_char=\t;csv_eol=\n;', '', '',
         {
           csv_tables => {
               processo => { file => "allprocessos.tab" }
           },
 },
      ],
);
</code>

e o resultado foi:

Donato-Vianas-MacBook-Pro:exportsia donatoaz$ perl loader.pl
Undefined subroutine &DBIx::Class::Schema::catch called at
/Library/Perl/5.10.0/DBIx/Class/Schema.pm line 830.

mais genérico impossível...

Alguma luz?

ps: eu consigo conectar usando pure DBI:

<code_que_funfa>
use DBI;

my $csvh = DBI->connect("DBI:CSV:f_dir=.;csv_sep_char=\t;csv_eol=\n;") or
die($DBI::errstr);
$csvh->{'csv_tables'}->{'processo'} = { 'file' => 'allprocessos.tab' };

my $query = "SELECT * FROM processo";
    my $sth   = $csvh->prepare ($query);
    $sth->execute ();
    while (my $row = $sth->fetchrow_hashref) {
        print "Found result row: id = ", $row->{codprocesso},
              ", name = ", $row->{descprocesso}, "\n";
    }
$sth->finish ();
</code_que_funfa>

Cheers!
-- 
Donato Azevedo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20110602/90e98e4d/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm