Revision 1e2a4a38
Von Moritz Bunkus vor fast 18 Jahren hinzugefügt
sql/Pg-upgrade2/globalprojectnumber_ap_ar_oe.pl | ||
---|---|---|
1 |
# @tag: globalprojectnumber_ap_ar_oe |
|
2 |
# @description: Neue Spalte für eine globale Projektnummer in Einkaufs- und Verkaufsbelegen |
|
3 |
# @depends: release_2_4_1 |
|
4 |
|
|
5 |
die("This script cannot be run from the command line.") unless ($main::form); |
|
6 |
|
|
7 |
sub do_query { |
|
8 |
my ($query, $may_fail) = @_; |
|
9 |
|
|
10 |
if (!$dbh->do($query)) { |
|
11 |
mydberror($query) unless ($may_fail); |
|
12 |
$dbh->rollback(); |
|
13 |
$dbh->begin_work(); |
|
14 |
} |
|
15 |
} |
|
16 |
|
|
17 |
sub do_update { |
|
18 |
my @queries = |
|
19 |
("ALTER TABLE ap ADD COLUMN globalproject_id integer;", |
|
20 |
"ALTER TABLE ap ADD FOREIGN KEY (globalproject_id) REFERENCES project (id);", |
|
21 |
"ALTER TABLE ar ADD COLUMN globalproject_id integer;", |
|
22 |
"ALTER TABLE ar ADD FOREIGN KEY (globalproject_id) REFERENCES project (id);", |
|
23 |
"ALTER TABLE oe ADD COLUMN globalproject_id integer;", |
|
24 |
"ALTER TABLE oe ADD FOREIGN KEY (globalproject_id) REFERENCES project (id);"); |
|
25 |
|
|
26 |
do_query("ALTER TABLE project ADD PRIMARY KEY (id);", 1); |
|
27 |
map({ do_query($_, 0); } @queries); |
|
28 |
|
|
29 |
return 1; |
|
30 |
} |
|
31 |
|
|
32 |
return do_update(); |
|
33 |
|
sql/Pg-upgrade2/globalprojectnumber_ap_ar_oe.sql | ||
---|---|---|
1 |
-- @tag: globalprojectnumber_ap_ar_oe |
|
2 |
-- @description: Neue Spalte für eine globale Projektnummer in Einkaufs- und Verkaufsbelegen |
|
3 |
-- @depends: release_2_4_1 |
|
4 |
ALTER TABLE ap ADD COLUMN globalproject_id integer; |
|
5 |
ALTER TABLE ap ADD FOREIGN KEY (globalproject_id) REFERENCES project (id); |
|
6 |
ALTER TABLE ar ADD COLUMN globalproject_id integer; |
|
7 |
ALTER TABLE ar ADD FOREIGN KEY (globalproject_id) REFERENCES project (id); |
|
8 |
ALTER TABLE oe ADD COLUMN globalproject_id integer; |
|
9 |
ALTER TABLE oe ADD FOREIGN KEY (globalproject_id) REFERENCES project (id); |
Auch abrufbar als: Unified diff
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.