[Dbix-class] How to use a model with a different table name

Matt S Trout dbix-class at trout.me.uk
Sun Jul 20 00:38:05 BST 2008


On Mon, Jun 23, 2008 at 02:31:41PM +0200, Emmanuel Quevillon wrote:
> Hi,
> 
> I am facing a problem (maybe a newbie one).
> I have a module DB::GenericTable.pm which reflects a 
> 'generic' table schema into my database associated to a 
> table name in the DB.
> I'd like to kow how can I access another table (different 
> name) but with the same schema (same column name, same 
> datatype) from my perl module? Someting like
> 
> package DB::GenericTable;
> 
> use strict;
> use warnings;
> 
> use base 'DBIx::Class';
> 
> __PACKAGE__->load_components("Core");
> __PACKAGE__->table("genericname");
> __PACKAGE__->add_columns(
> ...
> );
> 
> 1;
> 
> Later in my code :
> 
> my $model = $schema->resultset('GenericTable');
> $model->table('my_other_table_name'); #Point to another table

Mm.

$model->result_source($model->result_source->new($model->result_source));
$model->result_source->name('my_other_table_name');

Though I think you're probably insane and creating subclasses is going
to be better. Maybe if you explained the use case better?

-- 
      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://chainsawblues.vox.com/            http://www.shadowcat.co.uk/servers/



More information about the DBIx-Class mailing list