# @tag: globalprojectnumber_ap_ar_oe
# @description: Neue Spalte für eine globale Projektnummer in Einkaufs- und Verkaufsbelegen
# @depends: release_2_4_1
+package SL::DBUpgrade2::globalprojectnumber_ap_ar_oe;
use strict;
+use utf8;
-die("This script cannot be run from the command line.") unless ($main::form);
+use parent qw(SL::DBUpgrade2::Base);
-sub mydberror {
- my ($msg) = @_;
- die($dbup_locale->text("Database update error:") .
- "<br>$msg<br>" . $DBI::errstr);
-}
-
-sub do_query {
- my ($query, $may_fail) = @_;
+sub run {
+ my ($self) = @_;
- if (!$dbh->do($query)) {
- mydberror($query) unless ($may_fail);
- $dbh->rollback();
- $dbh->begin_work();
- }
-}
-
-sub do_update {
my @queries =
("ALTER TABLE ap ADD COLUMN globalproject_id integer;",
"ALTER TABLE ap ADD FOREIGN KEY (globalproject_id) REFERENCES project (id);",
"ALTER TABLE oe ADD COLUMN globalproject_id integer;",
"ALTER TABLE oe ADD FOREIGN KEY (globalproject_id) REFERENCES project (id);");
- do_query("ALTER TABLE project ADD PRIMARY KEY (id);", 1);
- map({ do_query($_, 0); } @queries);
+ $self->db_query("ALTER TABLE project ADD PRIMARY KEY (id)", may_fail => 1);
+ $self->db_query($_) for @queries;
return 1;
}
-return do_update();
-
+1;