Willkommen im kivitendo Forum! Hier erweitern und teilen AnwenderInnen und EntwicklerInnen ihr Wissen.

Teste kivitendo!

kivitendo Demo

kivitendo Demo mit Schweizer Kontenplan und neuem Layout

Unterstützt kivitendo mit der Basis-Subskription!

0 Punkte

Hallo ,
bekomme nach importierter 2.6.3 Datenbnak folgenden Fehler beim Versuch, einen Lieferanten anzulegen:

FEHLER: record "old" has no field "datevexport"
CONTEXT: PL/pgSQL function "set_datevexport" line 1 at IF

Bin leider nicht so PGSQL-Firm. Was habe ich falsch gemacht?

Danke für die Hilfe.
der Holzwurm

von

1 Antwort

0 Punkte

Schuss ins Blaue: Start mal den Datenbankserver neu. Anscheinend hat der nicht mitbekommen, dass beim Update ein paar Trigger rausgefallen sind, und versucht die weiter auszuführen.

von

Danke erstmal - das war's aber nicht. Hier mal die komplette Fehlemeldung:
UPDATE vendor SET vendornumber = ?, name = ?, greeting = ?, department_1 = ?, department_2 = ?, street = ?, zipcode = ?, city = ?, country = ?, homepage = ?, contact = ?, phone = ?, fax = ?, email = ?, cc = ?, bcc = ?, notes = ?, terms = ?, discount = ?, creditlimit = ?, business_id = ?, taxnumber = ?, language = ?, account_number = ?, bank_code = ?, bank = ?, iban = ?, bic = ?, obsolete = ?, direct_debit = ?, ustid = ?, payment_id = ?, taxzone_id = ?, language_id = ?, username = ?, user_password = ?, v_customer_id = ?, curr = ? WHERE id = ? (L28097, Meier GmbH, Firma, Verkauf, , Am Stadtrand 77, 03042, Rauschenbach, Irgendwo, , , , , , , , Testlieferant, , 0, 0, , , , , , , , , f, f, , 1121, 0, , , , , EUR, 9245)
FEHLER: record "old" has no field "datevexport"
CONTEXT: PL/pgSQL function "set_datevexport" line 1 at IF

Jojo, der Teil der Fehlermeldung war schon eindeutig.

Schau mal bitte auf der Datenbankkonsole nach diesen zwei Sachen:

  1. SELECT * FROM schema_info WHERE tag = 'drop_datevexport'
    Das sollte Dir anzeigen ob das Datenbankupgrade druchgelaufen ist, dass den Trigger entfernen sollte und dass die Spalte aus der Tabelle entfernt hat.
  2. \d vendor und unten schauen ob der Trigger namens set_datevexport noch existiert.

Wenn beides vorhanden ist, ist Dein Datenbankupgrade total kaputt gelaufen und hätte eigentlich abgebrochen werden sollen.

Hallo,
existiert leider:
Triggers:

del_vendor AFTER DELETE ON vendor FOR EACH ROW EXECUTE PROCEDURE del_vendor()
mtime_vendor BEFORE UPDATE ON vendor FOR EACH ROW EXECUTE PROCEDURE set_mtime()
vendor_datevexport BEFORE UPDATE ON vendor FOR EACH ROW EXECUTE PROCEDURE set_datevexport()

Kann ich das reparieren?
Danke für die Hilfe!

Wie gesagt, dann ist die Datenbank inkonsistent, alles ab hier ohne Gewähr, weil ich nicht weiß, was da noch kaputt ist. Von Haus aus werden bei kivitendo alle Datenbankupgrades atomar ausgeführt, d.h. der Zustand den Du hast, sollte niemals auftreten.

Zweiter Disclaimer: Wenn Du an Deiner Datenbank rumspielst mach ein Backup, falls es Dir um die Ohren fliegt. (Ich hab Dich gewarnt!)

Als erstes würd ich versuchen das Upgrade nochmal normal einspielen zu lassen. Das triggerst Du in dem Du die Zeile mit dem tag drop_datevexport aus der schema_info entfernst, dann versucht kivitendo das normal einzuspielen:

DELETE FROM schema_info WHERE tag = 'drop_datevexport';

Danach normal einloggen und das Upgrade laufen lassen. Versuch das bitte mal.

Danke! Ich weiß - dumme Frage, aber wo finde ich die 'schemainfo' ?

Siehe änderungen an meinem post. Das Forum hat etwas übereifrig Unterstriche als kursiv interpretiert.

Vielleicht noch eine kurze Korrektur:
SELECT * FROM schema_info WHERE tag = 'drop_datevexport'
gibt nichts aus

Folge ich risikobereit:

DELETE FROM schema_info WHERE tag = 'drop_datevexport';
FEHLER: Syntaxfehler bei »DELETE«
LINE 2: DELETE FROM schema_info WHERE tag = 'drop_datevexport';

Was mache ich denn verkehrt?

Habs noch mal gemacht, dann gings. Nach dem Anmelden im LX-Office wollte es wie angekündigt das Upgrade durchführen, dann kam

The database update/creation did not succeed. The file sql/Pg-upgrade2/drop_datevexport.sql containing the following query failed:
ALTER TABLE vendor DROP COLUMN datevexport
The error message was: FEHLER: Spalte »datevexport« von Relation »vendor« existiert nicht
All changes in that file have been reverted

Ähnliche Fragen

0 Punkte
1 Antwort
Gefragt 1, Sep 2014 von Anonym
0 Punkte
1 Antwort
0 Punkte
2 Antworten
Gefragt 24, Apr 2014 von Anonym
0 Punkte
1 Antwort
Gefragt 12, Mär 2014 von Anonym
0 Punkte
1 Antwort
Gefragt 3, Mai 2012 von Anonym
...