X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=sql%2FPg-upgrade2%2Facc_trans_id_uniqueness.pl;h=f83e99ecc317988184eca2768625126e4772eae7;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hp=9c0c4595a1239204b9cd300d33ce2c13500c299c;hpb=03f1746e7d974eb76926b4d5de041223f23ec615;p=kivitendo-erp.git diff --git a/sql/Pg-upgrade2/acc_trans_id_uniqueness.pl b/sql/Pg-upgrade2/acc_trans_id_uniqueness.pl index 9c0c4595a..f83e99ecc 100644 --- a/sql/Pg-upgrade2/acc_trans_id_uniqueness.pl +++ b/sql/Pg-upgrade2/acc_trans_id_uniqueness.pl @@ -1,30 +1,18 @@ # @tag: acc_trans_id_uniqueness # @description: Sorgt dafür, dass acc_trans.acc_trans_id eindeutig ist # @depends: release_2_6_1 -# @charset: utf-8 +package SL::DBUpgrade2::acc_trans_id_uniqueness; use utf8; use strict; -use Data::Dumper; -die "This script cannot be run from the command line." unless $::form; +use parent qw(SL::DBUpgrade2::Base); -sub mydberror { - my ($msg) = @_; - die $dbup_locale->text("Database update error:") . "
$msg
" . $DBI::errstr; -} - -sub do_query { - my ($query, $may_fail) = @_; +use SL::DBUtils; - return if $dbh->do($query); - - mydberror($query) unless ($may_fail); - $dbh->rollback(); - $dbh->begin_work(); -} +sub run { + my ($self) = @_; -sub do_update { my $query = <dbh, $query); return 1 unless @entries; @@ -45,12 +33,12 @@ SQL )) SQL - do_query($query, 0); + $self->db_query($query); - my %entries_by_trans_id; + my %skipped_acc_trans_ids; foreach my $entry (@entries) { - if (!$entries_by_trans_id{ $entry->{trans_id} }) { - $entries_by_trans_id{ $entry->{trans_id} } = []; + if (!$skipped_acc_trans_ids{ $entry->{acc_trans_id} }) { + $skipped_acc_trans_ids{ $entry->{acc_trans_id} } = 1; } else { my $mtime = $entry->{mtime} ? "= '$entry->{mtime}'" : 'IS NULL'; $query = <db_query($query); } } return 1; } -return do_update(); +1;