On 07/07/2009, at 10:14 AM, Tom Lanyon wrote:

Hi list,

I needed to add some components to some classes but not others; I expected this to be a fairly normal operation but DBIC-Schema-Loader didn't seem to be able to do it...

Attached is a simple patch that 'works for me' against current SVN trunk. Comments? Suggestions?

-Tom

<loader-component_overrides.patch>

Here's a script from the new Catalyst book that seems to achieve what you wanted, at least to some degree. In this case you regenerate the classes for particular tables to which you want to add specific components, so for lots of tables and lots of specific components this approach is repetitive. I don't know how close this is to doing what your patch achieves, but I do note that to be accepted into DBIC, your patch would need to include suitable tests.

 #!/usr/bin/perl
 use warnings;
 use strict;
 use FindBin qw/$Bin/;
 use DBIx::Class::Schema::Loader qw/ make_schema_at /;

 my %options;
 if (@ARGV) {
     my $table = shift @ARGV;
     %options = ( constraint => $table,
                  components => [...@argv]);
 }

 make_schema_at("Zotero::Schema",
                {
                    %options,
                    debug => 1,
                    relationships => 1,
                    use_namespaces => 1,
                    dump_directory => "$Bin/../lib" ,
                },
                ["dbi:SQLite:dbname=$Bin/../zotero.sqlite",
                 "",""]);


=head1 make_zotero_schema.pl [table name] [components]

     Make the DBIC schema from the zotero db, optionally limit it to a
     particular table, and adding specific components to the table.

=cut

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[email protected]

Reply via email to