[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