From: Rafael Kitover Date: Sun, 10 Jan 2010 11:04:52 +0000 (+0000) Subject: fix connection details in ::DBI::Replicated docs X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ce854fd32662c78921b754a9e6f4815b1c2210ec;p=dbsrgits%2FDBIx-Class-Historic.git fix connection details in ::DBI::Replicated docs --- diff --git a/lib/DBIx/Class/Storage/DBI/Replicated.pm b/lib/DBIx/Class/Storage/DBI/Replicated.pm index d8a5f6d..200483d 100644 --- a/lib/DBIx/Class/Storage/DBI/Replicated.pm +++ b/lib/DBIx/Class/Storage/DBI/Replicated.pm @@ -50,7 +50,9 @@ You should set the 'storage_type attribute to a replicated type. You should also define your arguments, such as which balancer you want and any arguments that the Pool object should get. + my $schema = Schema::Class->clone; $schema->storage_type( ['::DBI::Replicated', {balancer=>'::Random'}] ); + $schema->connection(...); Next, you need to add in the Replicants. Basically this is an array of arrayrefs, where each arrayref is database connect information. Think of these diff --git a/lib/DBIx/Class/Storage/DBI/Replicated/Introduction.pod b/lib/DBIx/Class/Storage/DBI/Replicated/Introduction.pod index c48f2a1..19d3ccf 100644 --- a/lib/DBIx/Class/Storage/DBI/Replicated/Introduction.pod +++ b/lib/DBIx/Class/Storage/DBI/Replicated/Introduction.pod @@ -89,26 +89,25 @@ may wish to do this. Again, if you are using L, I strongly recommend you use (or upgrade to) the latest L, which makes this job even easier. -First, you need to connect your L. Let's assume you have -such a schema called, "MyApp::Schema". - - use MyApp::Schema; - my $schema = MyApp::Schema->connect($dsn, $user, $pass); - -Next, you need to set the storage_type. - - $schema->storage_type( - ::DBI::Replicated' => { - balancer_type => '::Random', - balancer_args => { - auto_validate_every => 5, - master_read_weight => 1 - }, - pool_args => { - maximum_lag =>2, - }, - } - ); +First, you need to get a C<$schema> object and set the storage_type: + + my $schema = MyApp::Schema->clone; + $schema->storage_type([ + '::DBI::Replicated' => { + balancer_type => '::Random', + balancer_args => { + auto_validate_every => 5, + master_read_weight => 1 + }, + pool_args => { + maximum_lag =>2, + }, + } + ]); + +Then, you need to connect your L. + + $schema->connection($dsn, $user, $pass); Let's break down the settings. The method L takes one mandatory parameter, a scalar value, and an option second value which @@ -160,11 +159,11 @@ database. After you've configured the replicated storage, you need to add the connection information for the replicants: - $schema->storage->connect_replicants( - [$dsn1, $user, $pass, \%opts], - [$dsn2, $user, $pass, \%opts], - [$dsn3, $user, $pass, \%opts], - ); + $schema->storage->connect_replicants( + [$dsn1, $user, $pass, \%opts], + [$dsn2, $user, $pass, \%opts], + [$dsn3, $user, $pass, \%opts], + ); These replicants should be configured as slaves to the master using the instructions for MySQL native replication, or if you are just learning, you