Revision a9da5102
Von Sven Schöling vor mehr als 8 Jahren hinzugefügt
SL/User.pm | ||
---|---|---|
277 | 277 |
|
278 | 278 |
&dbconnect_vars($form, $form->{db}); |
279 | 279 |
|
280 |
# make a shim myconfig so that rose db connections work |
|
281 |
$::myconfig{$_} = $form->{$_} for qw(dbhost dbport dbuser dbpasswd); |
|
282 |
$::myconfig{dbname} = $form->{db}; |
|
283 |
|
|
280 | 284 |
$dbh = SL::DBConnect->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}, SL::DBConnect->get_options) |
281 | 285 |
or $form->dberror; |
282 | 286 |
|
283 |
my $dbupdater = SL::DBUpgrade2->new(form => $form);
|
|
287 |
my $dbupdater = SL::DBUpgrade2->new(form => $form, return_on_error => 1, silent => 1)->parse_dbupdate_controls;
|
|
284 | 288 |
# create the tables |
285 | 289 |
$dbupdater->process_query($dbh, "sql/lx-office.sql"); |
290 |
$dbupdater->process_query($dbh, "sql/$form->{chart}-chart.sql"); |
|
286 | 291 |
|
287 |
# process update-scripts needed before 1st user-login |
|
288 |
$self->create_schema_info_table($form, $dbh); |
|
289 |
$dbupdater->process_query($dbh, "sql/Pg-upgrade2/defaults_add_precision.sql"); |
|
290 |
$dbh->do("INSERT INTO schema_info (tag, login) VALUES ('defaults_add_precision', 'admin')"); |
|
292 |
$query = qq|UPDATE defaults SET coa = ?|; |
|
293 |
do_query($form, $dbh, $query, map { $form->{$_} } qw(chart)); |
|
291 | 294 |
|
292 |
# load chart of accounts |
|
293 |
$dbupdater->process_query($dbh, "sql/$form->{chart}-chart.sql"); |
|
295 |
$dbh->disconnect; |
|
296 |
|
|
297 |
# update new database |
|
298 |
$self->dbupdate2(form => $form, updater => $dbupdater, database => $form->{db}, silent => 1); |
|
294 | 299 |
|
295 |
$query = qq|UPDATE defaults SET coa = ?, accounting_method = ?, profit_determination = ?, inventory_system = ?, curr = ?, precision = ?|; |
|
296 |
do_query($form, $dbh, $query, map { $form->{$_} } qw(chart accounting_method profit_determination inventory_system defaultcurrency precision countrymode)); |
|
300 |
$dbh = SL::DBConnect->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}, SL::DBConnect->get_options) |
|
301 |
or $form->dberror; |
|
302 |
|
|
303 |
$query = "SELECT * FROM currencies WHERE name = ?"; |
|
304 |
my $curr = selectfirst_hashref_query($form, $dbh, $query, $form->{defaultcurrency}); |
|
305 |
if (!$curr->{id}) { |
|
306 |
do_query($form, $dbh, "INSERT INTO currencies (name) VALUES (?)", $form->{defaultcurrency}); |
|
307 |
$curr = selectfirst_hashref_query($form, $dbh, $query, $form->{defaultcurrency}); |
|
308 |
} |
|
309 |
|
|
310 |
$query = qq|UPDATE defaults SET accounting_method = ?, profit_determination = ?, inventory_system = ?, precision = ?, currency_id = ?|; |
|
311 |
do_query($form, $dbh, $query, |
|
312 |
$form->{accounting_method}, |
|
313 |
$form->{profit_determination}, |
|
314 |
$form->{inventory_system}, |
|
315 |
$form->parse_amount(\%::myconfig, $form->{precision_as_number}), |
|
316 |
$curr->{id}, |
|
317 |
); |
|
297 | 318 |
|
298 | 319 |
$dbh->disconnect; |
299 | 320 |
|
... | ... | |
385 | 406 |
my $form = $params{form}; |
386 | 407 |
my $dbupdater = $params{updater}; |
387 | 408 |
my $db = $params{database}; |
409 |
my $silent = $params{silent}; |
|
388 | 410 |
|
389 | 411 |
map { $_->{description} = SL::Iconv::convert($_->{charset}, 'UTF-8', $_->{description}) } values %{ $dbupdater->{all_controls} }; |
390 | 412 |
|
391 | 413 |
&dbconnect_vars($form, $db); |
392 | 414 |
|
393 | 415 |
# Flush potentially held database locks. |
394 |
$form->get_standard_dbh->commit; |
|
416 |
# $form->get_standard_dbh->commit;
|
|
395 | 417 |
|
396 | 418 |
my $dbh = SL::DBConnect->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}, SL::DBConnect->get_options) or $form->dberror; |
397 | 419 |
|
... | ... | |
406 | 428 |
# been applied correctly and if the update has not requested user |
407 | 429 |
# interaction. |
408 | 430 |
$main::lxdebug->message(LXDebug->DEBUG2(), "Applying Update $control->{file}"); |
409 |
print $form->parse_html_template("dbupgrade/upgrade_message2", $control); |
|
431 |
print $form->parse_html_template("dbupgrade/upgrade_message2", $control) unless $silent;
|
|
410 | 432 |
|
411 | 433 |
$dbupdater->process_file($dbh, "sql/Pg-upgrade2/$control->{file}", $control); |
412 | 434 |
} |
Auch abrufbar als: Unified diff
swiss: Datenbankupgrades verschoben