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 Zusammen,

die Aktualisierung von auth-DB ist reibungslos gelaufen, aber beim Versucht die Firmen-DB zu aktualisieren ist der Vorgang mit dem folgenden Fehler abgestürzt:

The database update/creation did not succeed. 
The file sql/Pg-upgrade2/order_type.sql containing the following query failed: 
ALTER TABLE oe ALTER COLUMN record_type SET NOT NULL 
The error message was: FEHLER: Spalte "record_type" von Relation oe enthält NULL-Werte All changes in that file have been reverted.

Das war mit einer Testdatenbank versucht und ich habe danach in der originellen DB nachgeschaut, die ist 3.6.1 verwendet wird: oe.record_type existiert da gar nicht.

Ich euch um Hilfe, wie kann ich das heilen?

Auch eine Begleitfrage... ich habe jetzt bei der neuen Installation (ich habe die alte 3.6.1 und die neue 3.9, wobei sie dieselben Datenbanken nutzen) jetzt nach dem oben beschriebenen Abstürz statt Login den Fehler:

kivitendo ist momentan zwecks Wartungsarbeiten nicht zugänglich.

Wie bekomme ich den weg?

BG
Roman

von (560 Punkte)
Bearbeitet von

1 Antwort

0 Punkte

Hallo Roman,
Die Meldung zu den Wartungsarbeiten bekommst du weg wenn du im Adminbereich unter
System->System sperren/entsperren das System entsperrst.

Jetzt zu deinem eigentlichen Problem.
Das Script order_type.sql legt die Spalte

  1. oe.record_type als ENUM an
  2. aktualisiert die Daten aus den vorhanden Werte der Spalte quotation bzw. intake

  3. Setzt die Spalte oe.record_type auf NOT NULL
    hier bricht das Script ab, das deutet darauf hin, dass ein oder mehrere Datensätze nicht in Ordnung sind.

  4. Löscht die Spalten quotation und intake

Es deutet also darauf hin, dass ein oder mehrere Datensätze nicht richtig sind. Dieses müsste analysiert werden.

Ich gehe mal davon aus, dass du vor den Update die Datenbanken (Benutzer und Mandanten) gesichert hast und dies auch regelmäßig tust.

So wie es aussieht wolltest Du eine 2. parallele Instanz mit der 3.9 aufbauen. In so einem Fall kannst Du auch gut mit Kopien deiner Datenbanken arbeiten und behältst erst mal ein aktives System.

Ansonsten kann ich die Installation vie Git empfehlen macht Updates deutlich einfacher.

Beste Grüße
Werner kivitendodienstleister

Unterstütze kivitendo mit einer Basis-Subcription

von (18.9k Punkte)

Erstmal dank für Deine Antwort, @Werner_Hahn. Was interessant ist, dass in der DB vor Update gibt es die spalte oe.record_type nicht und deshalb könnte sie nur als Ergebnis eines der Update-Skript erscheinen, was nach meinem Verständnis, von darauf folgenden Updates berücksichtigt werden sollte.

Aber ich prüfe noch ein Mal und schau dann in die Nicht-Null-Werte an.

Ich habe die SQL-Datei angeschaut. Es gibt genau einen Datensatz, der von Dir genannten Schritt 2 nicht aktualisiert wird:

SELECT customer_id, vendor_id, quotation, intake FROM oe WHERE record_type IS NULL;
customer_id | vendor_id | quotation | intake
-------------+-----------+-----------+--------
             |           | f         | f
(1 row)

Wofür ist die Tabelle oe zuständig bzw. wo soll ich im Backend von Kivitendo den Datensatz suchen, um zu verstehen, wieso der weder customer_id noch vendor_id hat? Offensichtlich liegt der Fehler daran, dass weder customer_id noch vendor_id ausgefüllt sind, ich möchte rausfinden, was ich damit machen kann.

Ich vermute, wenn ich nicht 3.6.1 auf 3.9 upgrade, sondern zunächst auf 3.7, dann 3.8 und erst dann auf 3.9, bekomme ich dasselbe Problem. Oder doch lohnt es sich zu probieren?

Hallo Roman,
Die Tabelle ist für Aufträge, Angebote, Einkaufsaufträge, Preisanfragen zuständig. Ich vermute mal, dass der irgendwann ohne Kunde/Lieferant reingekommen ist.

SELECT * FROM oe WHERE cutomer_id IS NULL AND vendor_id IS NULL

Um den Auftrag zu identifizieren, diesen solltest Du löschen können. Du kannst aber auch nochmal schauen ob der eine ordnumber (AUFTRAGS/ANGEBOTSNUMMER EK/VK) hat und danach an der Oberfläche suchen.

Ich hoffe das hilft Dir weiter.

Beste Grüße
Werner kivitendodienstleister

Unterstütze kivitendo mit einer Basis-Subcription

Ja, das Löschen des Weisen-Datensatz hat das Problem gelöst, das System, wurde anschließen problemlos auf 3.9 aktualisiert.

...