Sorry about the formatting as this came through.  Let me know if you would
like me to simply attach files of interest to reproduce the errors, etc.


On 1/4/06 9:05 AM, "Sean Davis" <[EMAIL PROTECTED]> wrote:

> I have to start by saying that I really like the make_modules concept; I
> dreaded having to hand-edit multiple files for large changes in database
> schema, but having module code to customize is necessary for many apps; this
> approach is the best of both worlds.
> 
> That said, I have the following schema:
> 
> DROP TABLE public.dogs; DROP TABLE public.contacts; CREATE TABLE
> public.contacts (       id SERIAL NOT NULL     , first_name VARCHAR(30)
> , last_name VARCHAR(30)     , middle VARCHAR(30)     , title VARCHAR(10)
> , phone VARCHAR(20)     , phone_2 VARCHAR(20)     , address_line_1
> VARCHAR(255)     , address_line_2 VARCHAR(255)     , city VARCHAR(30)     ,
> state VARCHAR(30)     , zip VARCHAR(10)     , country VARCHAR(30) DEFAULT
> 'United States'     , email VARCHAR(255)     , url VARCHAR(255) ); COMMENT
> ON COLUMN public.contacts.title IS 'Like Dr., Mrs., etc.'; CREATE TABLE
> public.dogs (       id SERIAL NOT NULL     , fullname TEXT     , owner
> INTEGER     , birthdate DATE ); COMMENT ON TABLE public.dogs IS 'Information
> associated with a single dog'; ALTER TABLE public.contacts  ADD CONSTRAINT
> PK_CONTACTS      PRIMARY KEY (id); ALTER TABLE public.dogs  ADD CONSTRAINT
> PK_DOGS      PRIMARY KEY (id); ALTER TABLE public.dogs  ADD CONSTRAINT
> fk_dogs_1      FOREIGN KEY (owner)      REFERENCES public.contacts (id)   ON
> DELETE RESTRICT   ON UPDATE CASCADE;
> 
> And a simple loader script:
> 
> #!/usr/bin/perl use strict; use warnings; use lib '../lib'; use
> Rose::DB::Object::Loader; use Dog::DB; my $loader =
> Rose::DB::Object::Loader->new(        db           => Dog::DB->new(),
> class_prefix => 'Dog::DB'    ); $loader->make_modules(    #assumes this file
> is in project/scripts directory and that    #there is a project/lib folder
> module_dir   => '../lib' );
> 
> The resulting modules contain references to some modules that do not exist,
> it seems.  For example, the Dog::DB::Dog module looks like:
> 
> package Dog::DB::Dog; use strict; use Dog::DB::DB::Object::Base1; our @ISA =
> qw(Dog::DB::DB::Object::Base1); __PACKAGE__->meta->table('dogs');
> __PACKAGE__->meta->columns(    id        => { type => 'serial', not_null =>
> 1 },    fullname  => { type => 'text' },    owner     => { type => 'integer'
> },    birthdate => { type => 'date' }, );
> __PACKAGE__->meta->primary_key_columns([ 'id' ]);
> __PACKAGE__->meta->foreign_keys(    contact => {        class =>
> 'Dog::DB::Contact',        key_columns => {            owner => 'id',
> },    }, ); __PACKAGE__->meta->initialize; 1;
> 
> And Dog::DB::DB::Object::Base1 isn¹t actually created and shouldn¹t be, I
> suppose?  In any case, using code based on the generated modules gives an
> error:
> 
> Can't locate Dog/DB/DB/Object/Base1.pm in @INC (@INC contains: ../lib
> /sw/lib/perl5 /sw/lib/perl5/darwin
> /Library/Perl/5.8.1/darwin-thread-multi-2level /Users/sdavis/MyMods
> /Users/sdavis/perl/MyModules /Users/sdavis/perl/bioperl/ensembl/modules
> /Users/sdavis/perl/bioperl/ensembl-compara/modules
> /Users/sdavis/perl/bioperl/TFBS
> /Users/sdavis/Library/R/library/RSPerl/share/lib/perl5/site_perl/5.8.6/darwi
> n-thread-multi-2level
> /Users/sdavis/Library/R/library/RSPerl/share/lib/perl5/site_perl/5.8.6
> /Users/sdavis/Library/R/library/RSPerl/share/lib/perl5/site_perl
> /System/Library/Perl/5.8.6/darwin-thread-multi-2level
> /System/Library/Perl/5.8.6 /Library/Perl/5.8.6/darwin-thread-multi-2level
> /Library/Perl/5.8.6 /Library/Perl
> /Network/Library/Perl/5.8.6/darwin-thread-multi-2level
> /Network/Library/Perl/5.8.6 /Network/Library/Perl
> /System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level
> /System/Library/Perl/Extras/5.8.6 /Library/Perl/5.8.1 .) at
> ../lib/Dog/DB/Dog.pm line 5.
> BEGIN failed--compilation aborted at ../lib/Dog/DB/Dog.pm line 5.
> Compilation failed in require at ../lib/Dog/DB/Dog/Manager.pm line 3.
> BEGIN failed--compilation aborted at ../lib/Dog/DB/Dog/Manager.pm line 3.
> 
> Any thoughts?  Did I miss a step somewhere?
> 
> Thanks,
> Sean
> 
> 




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
Rose-db-object mailing list
Rose-db-object@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rose-db-object

Reply via email to