Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5450d982

Von Niclas Zimmermann vor mehr als 10 Jahren hinzugefügt

  • ID 5450d982d29e8c2803e22e974ddddda4ae964dc8
  • Vorgänger 2421ad47
  • Nachfolger 6e603868

Änderung von Upgrade-Script change_taxzone_id_0

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.

Unterschiede anzeigen:

sql/Pg-upgrade2/change_taxzone_id_0.pl
# @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;
......
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++;
......
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

Auch abrufbar als: Unified diff