[Rio-pm] Usando DBIx::Class::Schema::Loader com DBD::CSV
Eden Cardim
edencardim em gmail.com
Quinta Junho 2 17:11:16 PDT 2011
>>>>> "Donato" == Donato Azevedo <donatoaz em gmail.com> writes:
Donato> Pessoas, Gostaria de usar o DBIx::Class::Schema::Loader para
Donato> gerar um squema para um banco em que cada tabela está em um
Donato> arquivo tipo CSV (o delimitador, no entando é \t )
Donato> No caso do DBD::CSV, existe uma particularidade que é eu
Donato> defino as tabelas através de driver flags, ou seja, eu tenho
Donato> de passar quais as tabelas no dsn...
Donato> Eu tentei o seguinte com o DBIx::Class ::Schema::Loader:
Donato> <code>
Donato> use DBIx::Class::Schema::Loader qw/ make_schema_at /;
Donato> make_schema_at(
Donato> 'SIATAB::Schema',
Donato> { debug => 1,
Donato> dump_directory => './lib',
Donato> },
Donato> [ 'dbi:CSV:f_dir=.;csv_sep_char=\t;csv_eol=\n;', '', '',
Donato> {
Donato> csv_tables => {
Donato> processo => { file => "allprocessos.tab" }
Donato> },
Donato> },
Donato> ],
Donato> );
Donato> </code>
Donato> e o resultado foi:
Donato> Donato-Vianas-MacBook-Pro:exportsia donatoaz$ perl
Donato> loader.pl Undefined subroutine &DBIx::Class::Schema::catch
Donato> called at /Library/Perl/5.10.0/DBIx/Class/Schema.pm line
Donato> 830.
Donato> mais genérico impossível...
Donato> Alguma luz?
O DBIx::Class não consegue inferir schema do DBD::CSV nem de qualquer
descendente do DBD::File, por falta de suporte à API de metadados. No
caso, é culpa do DBD::CSV e do formato de storage que você escolheu. De
onde o DBIC vai ler as informações sobre o schema? Você vai ter que
declarar o schema manualmente mesmo.
--
Eden Cardim Need help with your Catalyst or DBIx::Class project?
Code Monkey http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/
http://twitter.com/#!/edenc
Mais detalhes sobre a lista de discussão Rio-pm