Perl-Datenbank-Upgradescripte auf Objektorientierung & strict umgestellt
[kivitendo-erp.git] / sql / Pg-upgrade2 / globalprojectnumber_ap_ar_oe.pl
index 608e442..df31c04 100644 (file)
@@ -1,28 +1,16 @@
 # @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);",
@@ -31,11 +19,10 @@ sub do_update {
      "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);", 1);
+  map({ $self->db_query($_, 0); } @queries);
 
   return 1;
 }
 
-return do_update();
-
+1;