X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2F000setup_database.t;h=4e739b72d925e797b3f19835388b0ff69c6eda3f;hb=1b032ef45d886922f1fe347ec234c9b0c8c50efd;hp=f61c8a3c1a52207aeeb367356602a62edf5ed572;hpb=de8da5ba5ece7f68cf008b88016b42925e840100;p=kivitendo-erp.git diff --git a/t/000setup_database.t b/t/000setup_database.t index f61c8a3c1..4e739b72d 100755 --- a/t/000setup_database.t +++ b/t/000setup_database.t @@ -16,7 +16,7 @@ use SL::Layout::None; use SL::LxOfficeConf; use Support::TestSetup; -our ($db_cfg, $dbh); +our ($db_cfg, $dbh, $superuser_dbh); sub dbg { # diag(@_); @@ -85,7 +85,8 @@ sub drop_and_create_database { sub report_success { $dbh->disconnect; - ok(1, "Database has been setup sucessfully."); + $superuser_dbh->disconnect if $superuser_dbh; + ok(1, "Database has been set up successfully."); done_testing(); } @@ -97,7 +98,8 @@ sub apply_dbupgrade { dbg("Applying $file"); - my $error = $dbupdater->process_file($dbh, $file, $control); + my $script_dbh = $control && $control->{superuser_privileges} ? ($superuser_dbh // $dbh) : $dbh; + my $error = $dbupdater->process_file($script_dbh, $file, $control); BAIL_OUT("Error applying $file: $error") if $error; } @@ -117,6 +119,17 @@ sub create_initial_schema { my $dbupdater = SL::DBUpgrade2->new(form => $::form, return_on_error => 1, silent => 1); my $coa = 'Germany-DATEV-SKR03EU'; + if ($db_cfg->{superuser_user} && ($db_cfg->{superuser_user} ne $db_cfg->{user})) { + @dbi_options = ( + 'dbi:Pg:dbname=' . $db_cfg->{db} . ';host=' . $db_cfg->{host} . ';port=' . $db_cfg->{port}, + $db_cfg->{superuser_user}, + $db_cfg->{superuser_password}, + SL::DBConnect->get_options(PrintError => 0, PrintWarn => 0), + ); + + $superuser_dbh = SL::DBConnect->connect(@dbi_options) || BAIL_OUT("Database superuser connection failed: " . $DBI::errstr); + } + apply_dbupgrade($dbupdater, "sql/lx-office.sql"); apply_dbupgrade($dbupdater, "sql/${coa}-chart.sql");