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

Geld allein macht nicht glücklich - benutzt kivitendo!

0 Punkte

Hallo,
ich bin Grad dabei meine alte Datenbank aus 2.6.0 auf 3.1.0 zu bringen nun hänge ich bei 2.7.0 wenn ich eine Datenbank Update will kommt folgende Fehlermeldung :

Führe parts_add_unit_foreign_key.sql aus: Einheiten die Waren zugeordnet sind entsprechend als Fremdschlüssel verknüpfen.

Fehler!
The database update/creation did not succeed. The file sql/Pg-upgrade2/parts_add_unit_foreign_key.sql containing the following query failed:
ALTER TABLE parts ADD FOREIGN KEY (unit) REFERENCES units(name)
The error message was: ERROR: insert or update on table "parts" violates foreign key constraint "parts_unit_fkey"
DETAIL: Key (unit)=(� / Objekt) is not present in table "units".
All changes in that file have been reverted.

sollte jemand ähnliche Erfahrung gemacht haben würde mich die Lösung interessieren.

LG Marek

Gefragt von (350 Punkte)

2 Antworten

0 Punkte
 
Beste Antwort

Ciatronical ist auf dem richtigen Dampfer, aber es fehlt eine Zeile in der Tabelle Units und nicht eine Spalte. (wahrscheinlich meint er das auch)

In Deiner Fehlermeldung ist der Hinweis schon drin, Du musst also das Ubgrade-script nicht noch mal zu fuss ausfuehren. Allerdings ist es hier nicht richtig codiert (es gibt also ein Sonderzeichenproblem) . Und ich kann nicht sagen, ob das erst im Forum kaputt gegangen ist oder das Codierungs-Problem schon in der Datenbank steckt.

DETAIL: Key (unit)=(� / Objekt) is not present in table "units".

Du hast also eine Ware angelegt mit der Einheit: � / Objekt die gibt es aber nicht in Deinen Einheiten.

  • Du musst mal schauen ob dieser Hinweis schon reicht und dann noch eine Einheit dementsprechend anlegen.
  • Eventuell schaust Du Dir auch mal den Kram genau an mit
    • alle Einheiten in Deinen Waren auflisten:
      select unit from parts group by unit order by unit;
    • alle Einheiten in der Tabelle Einheiten auflisten:
      select name from units order by name;
      Bei der ersten Abfrage darf kein Wert kommen, den es nicht in der zweiten Abfrage auch gibt.

War Deine 2.6.0 noch mit iso codiert? das koennte auch die Ursache sein. Da wird es eventuell kniffelig das hinzubiegen, schau Dir das erst einmal soweit an und berichte.

Wichtig ist das Du die Tests und das Anlegen/Korrigieren der Fehlenden Einheit in der noch nicht von den Scripten bearbeiten Version machst (also die Sicherung die Du vor dem Upgrade gemacht hast). Di Korrektur, also das Anlegen der fehlenden Einheit machst Du am besten mit der alten LX-Office Version und nicht auf Datenbankebene.

Beantwortet von (17.9k Punkte)
ausgewählt von

Danke für die antworten ich werde es die tage mal alles in ruhe durchgehen und euch auf dem laufenden halten.

So erstmal vielen dank an Ciatronical und wulf ohne euch würde ich verzweifeln ^^.
habe jetzt mal in waren geschaut und schwupp tauchten die Fehler auf.
da waren Einheiten nicht richtig eingegeben oder sind beim Update verschwunden wie dem auch sein habe sie geändert nun funktioniert alles nun mach ich mich an das update von 2.7 auf 3.0 sollte ich fragen habe werde ich euch wieder nerven ^^

0 Punkte

Es sieht so aus als fehlt eine Spalte in units.

Ich würde den Inhalt von parts_add_unit_foreign_key.sql Schritt für Schritt manuell in psql oder pgadmin3 ausführen und schauen was in units genau fehlt.

Vorher natürlich die DB sichern.

Alternativ kann die Sicherung auch von einem professionellen Kivitendo-Supporter repariert werden.

Beantwortet von (9.9k Punkte)

Ähnliche Fragen

0 Punkte
1 Antwort
Gefragt 12, Mär 2014 von Marek (350 Punkte)
0 Punkte
1 Antwort
0 Punkte
1 Antwort
Gefragt 21, Apr 2012 von martin (40 Punkte)
0 Punkte
2 Antworten
Gefragt 20, Apr 2012 von fortschritt (330 Punkte)
0 Punkte
3 Antworten
...