[Catalyst] connecting to more than one database

jagdish eashwar jagdish.eashwar at gmail.com
Thu Jul 3 02:14:44 BST 2008


I am working on two Catalyst applications and had earlier set up separate
Mysql databases for each of them. Since some of the tables that these two
applications use, are the same, I put the common tables in a third database
and created two models in each of the Catalyst applications. I am, however,
unable to set up  relationships between  tables in the common and specific
databases.

I used myapp_create.pl to create the two models:

perl script/hardware_create.pl model MyhardwareDB DBIC::Schema
Myhardware::Schema::MyhardwareDB create=3Dstatic dbi:mysql:hardware 'jag'
'passwd' '{ AutoCommit =3D> 1 }'

perl script/hardware_create.pl model CommonDB DBIC::Schema
Myhardware::Schema::CommonDB create=3Dstatic dbi:mysql:hardware 'jag' 'pass=
wd'
'{ AutoCommit =3D> 1 }'

and then put in the relationships between the employee and hardware tables
as under:

# in Emp.pm
#employee has many hardware
__PACKAGE__->has_many(emp_hm_hw =3D>
'Myhardware::Schema::MyhardwareDB::Hardware', 'hw_emp_id');

# in Hardware.pm
#hardware belongs to employee
__PACKAGE__->belongs_to(hw_bt_emp_id =3D>
'Myhardware::Schema::CommonDB::Emp','hw_emp_id');

When I use these accessors in the tt2 templates, i get an undef error.

undef error - DBIx::Class::Relationship::Accessor::__ANON__(): Can't find
source for Myhardware::Schema::MyhardwareDB::Hardware at
/home/jag/catalyst_trials/Myhardware/root/src/usr_fragment.tt2 line 8

What am I doing wrong?

Jagdish
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20080703/a256d=
cd8/attachment.htm


More information about the Catalyst mailing list