DBIx::Class::Row::Slave - DBIx::Class::Row for slave (EXPERIMENTAL)
# In your MyApp::Schema::Artist # Don't forget load this component __PACKAGE__->load_components( qw/ Row::Slave Core / ); # Somewhere in your code use MyApp::Schema; # Connecting your Schema my $schema = MyApp::Schema->connect( @info ); # Retrieving from master my $master = $schema->resultset('Artist')->find( $id ); # Retrieving from slave my $slave = $schema->resultset('Artist::Slave')->find( $id ); # Adding in master # Complete normally my $master = $schema->resultset('Artist')->create( { ... } ); # Adding in slave # You got an error! # DBIx::Class::ResultSet::create(): Can't insert via result source "Artist::Slave". This is slave connection. my $slave = $schema->resultset('Artist::Slave')->create( { ... } ); # Also you can neither update nor delete via slave result_sources. my $slave = $schema->resultset('Artist::Slave')->single( { name => 'QURULI' } ); $slave->name('RADIOHEAD'); # DBIx::Class::Row::Slave::update(): Can't update via result source "Artist::Slave". This is slave connection. $slave->update; # DBIx::Class::Row::Slave::delete(): Can't delete via result source "Artist::Slave". This is slave connection. $slave->delete;
See DBIx::Class::Row.
DBIx::Class::Row::Slave is DBIx::Class::Row for slave. It provide no novel functions, but rather restrict some functions via slave result_sources. You can retrieve rows from either master or slave but you can neither add nor remove rows from slave.
result_source
Throw exception if called via slave result_sources.
Throw exception if called via slave result_sourcess.
result_sources
This method returns 1 if the row is retrieved via slave result_source, otherwise returns 0.
1
0
my $master = $schema->resultset('Artist')->find( $id ); my $slave = $schema->resultset('Artist::Slave')->find( $id ); # Returns 0 $master->is_slave; # Returns 1 $slave->is_slave;
travail travail@cabane.no-ip.org
travail@cabane.no-ip.org
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
To install DBIx::Class::Schema::Slave, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DBIx::Class::Schema::Slave
CPAN shell
perl -MCPAN -e shell install DBIx::Class::Schema::Slave
For more information on module installation, please visit the detailed CPAN module installation guide.