X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=sql%2FPg-upgrade2%2Facc_trans_id_uniqueness.pl;h=f83e99ecc317988184eca2768625126e4772eae7;hb=f202ae53dcb57a5b06669bc555d5bd2b764ed5ec;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;