[Catalyst] connecting to more than one database

jagdish eashwar jagdish.eashwar at gmail.com
Thu Jul 3 15:02:20 BST 2008


Hi,
The first Catalyst application of mine deals with the leave records of
employees. The second one deals with the hardware that they have been given.
Both these applications require details about the employees like their name
and employee_no. So I put the employee details in one database called
'common', and the leave particulars in another database called 'leave' , and
the hardware details in a third database called 'hardware'.

I was able to put in the foreign key constraints at the time of table
creation. And these are working. I cannot, for example, insert an emloyee_no
in either the 'leave' or the 'hardware' database if it is not existing in
the 'common' database.

So when I was able to do what I had in mind at the database level, I thought
it would be possible to do the same with Catalyst and DBIx::Class also. I
still haven't lost hope.  It would be painful and inelegant to have to
replicate the employee details for each  of the web applications in the
respective databases.

jagdish
On Thu, Jul 3, 2008 at 6:10 PM, Marcello Romani <mromani at ottotecnica.com>
wrote:

> Oleg Pronin ha scritto:
>
>> How do you imagine yourself a request with join beetween 2 tables in
>> different databases?
>> This is the reason you can't make relationships between different schema=
s.
>>
>
> If it's not a typo, the two schemas connect to the same database on the
> mysql side...
>
> Anyway, I think DBIC sees them as two different databases, even if their
> connections strings are the same...
>
>
>> 2008/7/3 jagdish eashwar <jagdish.eashwar at gmail.com <mailto:
>> jagdish.eashwar at gmail.com>>:
>>
>>
>>    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    relationshi=
ps
>> 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'
>>    'passwd' '{ 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
>>
>>    _______________________________________________
>>    List: Catalyst at lists.scsys.co.uk <mailto:Catalyst at lists.scsys.co.uk>
>>    Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>>    Searchable archive:
>>    http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
>>    Dev site: http://dev.catalyst.perl.org/
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> List: Catalyst at lists.scsys.co.uk
>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>> Searchable archive:
>> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
>> Dev site: http://dev.catalyst.perl.org/
>>
>
>
> --
> Marcello Romani
> Responsabile IT
> Ottotecnica s.r.l.
> http://www.ottotecnica.com
>
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20080703/a2609=
907/attachment.htm


More information about the Catalyst mailing list