From 5450d982d29e8c2803e22e974ddddda4ae964dc8 Mon Sep 17 00:00:00 2001 From: Niclas Zimmermann Date: Mon, 9 Sep 2013 17:13:20 +0200 Subject: [PATCH] =?utf8?q?=C3=84nderung=20von=20Upgrade-Script=20change=5F?= =?utf8?q?taxzone=5Fid=5F0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Die Tabellen ar und ap werden jetzt auch an den ID-Wechsel angepasst. Weiterhin werden 2 Fremdschlüssel gesetzt, die durch den Wechsel aufgefallen sind. --- sql/Pg-upgrade2/change_taxzone_id_0.pl | 33 +++++++++++++++++++------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/sql/Pg-upgrade2/change_taxzone_id_0.pl b/sql/Pg-upgrade2/change_taxzone_id_0.pl index 2afb0539f..23b2023d9 100644 --- a/sql/Pg-upgrade2/change_taxzone_id_0.pl +++ b/sql/Pg-upgrade2/change_taxzone_id_0.pl @@ -1,5 +1,5 @@ # @tag: change_taxzone_id_0 -# @description: Verändert die id von 0 auf einen anderen Wert größer 0 in tax_zones, wenn es so einen Eintrag gibt. +# @description: Verändert die id von 0 auf einen anderen Wert größer 0 in tax_zones, wenn es so einen Eintrag gibt und setzt zwei Fremdschlüssel von Tabellen ar/ap auf tax_zones. # @depends: convert_taxzone taxzone_default_id taxzone_sortkey package SL::DBUpgrade2::change_taxzone_id_0; @@ -11,7 +11,7 @@ use parent qw(SL::DBUpgrade2::Base); sub run { my ($self) = @_; - my $query = qq|SELECT id FROM tax_zones ORDER BY id DESC|; + my $query = qq|SELECT id FROM tax_zones ORDER BY id DESC LIMIT 1|; my ($id) = $self->dbh->selectrow_array($query); $id++; @@ -19,19 +19,34 @@ sub run { my $sth = $self->dbh->prepare($query); $sth->execute || $::form->dberror($query); - my $ref = $sth->fetchrow_hashref("NAME_lc"); + if (my $ref = $sth->fetchrow_hashref("NAME_lc")) { - $query = qq|INSERT INTO tax_zones (id, description, sortkey) VALUES (?,?,?)|; - $self->db_query($query, bind => [ $id, $ref->{description}, $ref->{sortkey} ]); + $query = qq|INSERT INTO tax_zones (id, description, sortkey) VALUES (?,?,?)|; + $self->db_query($query, bind => [ $id, $ref->{description}, $ref->{sortkey} ]); - $query = qq|UPDATE taxzone_charts SET taxzone_id=$id WHERE taxzone_id=0|; - $self->db_query($query); + $query = qq|UPDATE taxzone_charts SET taxzone_id=$id WHERE taxzone_id=0|; + $self->db_query($query); - $sth->finish; + $query = qq|DELETE FROM tax_zones WHERE id=0|; + $self->db_query($query); + + #Adapt other tables to the new id: + $query = qq|UPDATE ar SET taxzone_id=$id WHERE taxzone_id=0|; + $self->db_query($query); + + $query = qq|UPDATE ap SET taxzone_id=$id WHERE taxzone_id=0|; + $self->db_query($query); + } - $query = qq|DELETE FROM tax_zones WHERE id=0|; + #Set Constraints: + $query = qq|ALTER TABLE ar ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|; $self->db_query($query); + $query = qq|ALTER TABLE ap ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|; + $self->db_query($query); + + $sth->finish; + return 1; } # end run -- 2.20.1