From: Moritz Bunkus Date: Tue, 20 Feb 2007 16:14:56 +0000 (+0000) Subject: Anscheinend gab es irgendwo im Upgrade-Pfad Unstimmigkeiten, sodass nicht alle Datenb... X-Git-Tag: release-2.4.2~46 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=1e2a4a3836d317a33166b34f514ca6863e4824c1;p=kivitendo-erp.git Anscheinend gab es irgendwo im Upgrade-Pfad Unstimmigkeiten, sodass nicht alle Datenbanken bei project einen Primärschlüssel auf id haben, auch wenn dieser in lx-office.sql eingetragen ist. Also project mit einem Primärschlüssel versehen, sofern keiner existiert, bevor mit Fremdschlüsseln darauf verwiesen wird. --- diff --git a/sql/Pg-upgrade2/globalprojectnumber_ap_ar_oe.pl b/sql/Pg-upgrade2/globalprojectnumber_ap_ar_oe.pl new file mode 100644 index 000000000..a9de59f1d --- /dev/null +++ b/sql/Pg-upgrade2/globalprojectnumber_ap_ar_oe.pl @@ -0,0 +1,33 @@ +# @tag: globalprojectnumber_ap_ar_oe +# @description: Neue Spalte für eine globale Projektnummer in Einkaufs- und Verkaufsbelegen +# @depends: release_2_4_1 + +die("This script cannot be run from the command line.") unless ($main::form); + +sub do_query { + my ($query, $may_fail) = @_; + + 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 ar ADD COLUMN globalproject_id integer;", + "ALTER TABLE ar 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); + + return 1; +} + +return do_update(); + diff --git a/sql/Pg-upgrade2/globalprojectnumber_ap_ar_oe.sql b/sql/Pg-upgrade2/globalprojectnumber_ap_ar_oe.sql deleted file mode 100644 index 932cad4d2..000000000 --- a/sql/Pg-upgrade2/globalprojectnumber_ap_ar_oe.sql +++ /dev/null @@ -1,9 +0,0 @@ --- @tag: globalprojectnumber_ap_ar_oe --- @description: Neue Spalte für eine globale Projektnummer in Einkaufs- und Verkaufsbelegen --- @depends: release_2_4_1 -ALTER TABLE ap ADD COLUMN globalproject_id integer; -ALTER TABLE ap ADD FOREIGN KEY (globalproject_id) REFERENCES project (id); -ALTER TABLE ar ADD COLUMN globalproject_id integer; -ALTER TABLE ar 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);