package DB; use lib qw( /home/raj/perl5/lib/perl5 ); use DBIx::Simple; use Moose; use namespace::clean -except => 'meta'; has config => ( is => 'ro', isa => 'Config::Tiny', required => 1, ); =begin # expects config file to supply: src_host= src_db= src_username= src_passwd= hilis4_host= # probably localhost hilis4_db= hilis4_username= hilis4_passwd= =cut sub connect { my $self = shift; my $cfg = $self->config->{_}; # '_' = root section my $local_db = $cfg->{hilis4_db}; my $local_host = $cfg->{hilis4_host}; my @local_login = map $cfg->{$_}, qw(hilis4_username hilis4_passwd); my $hilis3_db = $cfg->{src_db}; my $hilis3_host = $cfg->{src_host}; my @hilis3_login = map $cfg->{$_}, qw(src_username src_passwd); # DBI->trace(3, './trace.log'); my $dbh3 = DBI->connect( "DBI:mysql:database=$hilis3_db;host=$hilis3_host", @hilis3_login, { RaiseError => 1 } ); my $dbh4 = DBI->connect( "DBI:mysql:database=$local_db;host=$local_host", @local_login, { RaiseError => 1 } ); my $dbix3 = DBIx::Simple->new($dbh3); my $dbix4 = DBIx::Simple->new($dbh4); return { dbh3 => $dbh3, dbh4 => $dbh4, dbix3 => $dbix3, dbix4 => $dbix4, } } sub disconnect { my $self = shift; my $db = shift; $db->{dbh3}->disconnect(); $db->{dbh4}->disconnect(); } 1;