::DBI::Replicated - don't build pool/balancer from connect_info unless necessary
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Replicated.pm
index bed8a1f..465eec0 100644 (file)
@@ -275,7 +275,6 @@ has 'write_handler' => (
   is=>'ro',
   isa=>Object,
   lazy_build=>1,
-  lazy_build=>1,
   handles=>[qw/   
     on_connect_do
     on_disconnect_do       
@@ -338,7 +337,8 @@ around connect_info => sub {
       %{ delete $opts{pool_args} || {} }
     });
 
-    $self->pool($self->_build_pool);
+    $self->pool($self->_build_pool)
+       if $self->pool;
   }
 
   if (@opts{qw/balancer_type balancer_args/}) {
@@ -350,7 +350,8 @@ around connect_info => sub {
       %{ delete $opts{balancer_args} || {} }
     });
 
-    $self->balancer($self->_build_balancer);
+    $self->balancer($self->_build_balancer)
+       if $self->balancer;
   }
 
   $self->_master_connect_info_opts(\%opts);
@@ -388,7 +389,9 @@ Lazy builder for the L</master> attribute.
 
 sub _build_master {
   my $self = shift @_;
-  DBIx::Class::Storage::DBI->new($self->schema);
+  my $master = DBIx::Class::Storage::DBI->new($self->schema);
+  DBIx::Class::Storage::DBI::Replicated::WithDSN->meta->apply($master);
+  $master
 }
 
 =head2 _build_pool