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