X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=text%2Fcsv2sql;h=9ee82035831494930b9895293b0ac134f90133db;hp=de73881a83ffbba1a965bb9c554500eac905afbb;hb=57eaa0c128e7db1c6a5412edb5dd4bc27e14b243;hpb=f9201dc2d1699f5161e5e29690a1634e8063bb85 diff --git a/text/csv2sql b/text/csv2sql index de73881..9ee8203 100755 --- a/text/csv2sql +++ b/text/csv2sql @@ -4,15 +4,25 @@ use Text::CSV::Auto; use Data::Dumper; use DBI; use File::Basename; +use Env qw( + HOME PGHOST PGPORT PGUSER PGDATABASE MIGSCHEMA + MIGBASEWORKDIR MIGBASEGITDIR MIGGITDIR MIGWORKDIR +); my $dbh; my $cfg; my $csv_config; sub init { - our %config; - do '/openils/conf/offline-config.pl'; - $dbh = DBI->connect( $config{dsn}, $config{usr}, $config{pw} ) or die $DBI::errstr; + if ($PGHOST and $PGPORT and $PGUSER and $PGDATABASE) + { + $dbh = connect_db($PGDATABASE,$PGUSER,undef,$PGHOST) or die $DBI::errstr; + } else { + our %config; + do '/openils/conf/offline-config.pl'; + $dbh = DBI->connect( $config{dsn}, $config{usr}, $config{pw} ) or die $DBI::errstr; + } + $cfg = { schema => 'm_foo', auto_options => { @@ -49,6 +59,23 @@ sub init { } } +sub connect_db { + my ($db, $dbuser, $dbpw, $dbhost) = @_; + + my $dsn = "dbi:Pg:host=$dbhost;dbname=$db;port=5432"; + + my $attrs = { + ShowErrorStatement => 1, + RaiseError => 1, + PrintError => 1, + pg_enable_utf8 => 1, + }; + my $dbh = DBI->connect($dsn, $dbuser, $dbpw, $attrs); + + return $dbh; +} + + sub write_sql_sample { my $cfg = shift; my $info = shift;