Fehler #608
DBUpgrade fehler bei sql/Pg-upgrade2/record_links_remove_to_quotation.pl
0%
Beschreibung
Wir hatten bei einem Kunden 3.6.1 -> 3.8 Upgrade ein Problem mit einem db skript
Die Datenbankaktualisierung/erstellung schlug fehl. Die Datei sql/Pg-upgrade2/record_links_remove_to_quotation.pl enthielt den folgenden Fehler:
DELETE FROM record_links WHERE from_table = 'oe' AND to_table = 'oe' AND from_id = ? AND to_id = ?; : ERROR: invalid input syntax for integer: ""
Alle Änderungen in dieser Datei wurden rückgängig gemacht.
Einige der einträge enthielten da anscheinend ein ''. Ich habe diese dann übersprungen mit:
if ($from_oe_id eq '' || $to_oe_id eq '') {
next;
}
Wäre es allenfalls sinnvoll das in das upgrade script einzubauen?
Wenn die Einträge leer sind sollte es keine rolle spielen denke ich?
Historie
Von Bernd Bleßmann vor mehr als 1 Jahr aktualisiert
Cem Aydin schrieb:
Einige der einträge enthielten da anscheinend ein ''. Ich habe diese dann übersprungen mit:
Mmh. die Spalten from_id und to_id sind schon von Anfang an NOT NULL und INTEGER. Ich frage mich, wie das ein leerer String rein kommen kann. Evtl. war das in einer älteren Postgres-Version nicht strikt geprüft worden?
Oder habt Ihr eine Anpassung dort?
if ($from_oe_id eq '' || $to_oe_id eq '') {
next;
}Wäre es allenfalls sinnvoll das in das upgrade script einzubauen?
Wenn die Einträge leer sind sollte es keine rolle spielen denke ich?
Von mir aus kannst Du das Skript anpassen. Sollte eh nicht vorkommen ;) (Oder habe ich in der Query was falsch gemacht?)
Wäre schon interessant zu wissen, wie das passiert.
Von Cem Aydin vor mehr als 1 Jahr aktualisiert
Ja du hast recht, das sollte eigentlich nicht vorkommen...
Dann lasse ich das mal so wie es ist. Wie das in dieser Datenbank passiert ist, ist schwierig nachzuvollziehen, da diese schon sehr lange beim Kunden im Einsatz ist.
Danke, LG