Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 1e2a4a38

Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt

  • ID 1e2a4a3836d317a33166b34f514ca6863e4824c1
  • Vorgänger d5e79beb
  • Nachfolger dad628a3

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.

Unterschiede anzeigen:

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