X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=text%2Fcsv2sql;h=37a136d686237e59285fe84588c969c3ee57546c;hp=de73881a83ffbba1a965bb9c554500eac905afbb;hb=e2850e245100f5ec46bb4dfa950864e7a44c6731;hpb=f9201dc2d1699f5161e5e29690a1634e8063bb85 diff --git a/text/csv2sql b/text/csv2sql index de73881..37a136d 100755 --- a/text/csv2sql +++ b/text/csv2sql @@ -4,6 +4,10 @@ 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; @@ -11,8 +15,14 @@ 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 { + 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;