MySQL-Import von Umsatzkategoien schlägt fehl

 
f0k
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 2
Dabei seit: 09 / 2022
Betreff:

MySQL-Import von Umsatzkategoien schlägt fehl

 · 
Gepostet: 19.09.2022 - 09:52 Uhr  ·  #1
Hallo,

ich versuche gerade, eine lokale Hibiscus-Datenbank auf MySQL zu migrieren, nach Anleitung auf https://www.willuhn.de/wiki/doku.php?id=support:mysql.

Beim Import der Daten in die MySQL-Datenbank erhalte ich folgende Art von Fehler:

Code
[19.09.2022 09:32:17]   Lebensmittel fehlerhaft (insert failed, rollback successful; nested exception is: 
  com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`hibiscus`.`umsatztyp`, CONSTRAINT `fk_umsatztyp_konto` FOREIGN KEY (`konto_id`) REFERENCES `konto` (`id`))), überspringe


Sprich: Die Kategorien ("Umsatztyp") können nicht angelegt werden, weil das entsprechende Konto noch nicht angelegt ist. Nach dem fehlgeschlagenen Import der Kategorien können die Umsätze nicht importiert werden, da die Kategorien nicht angelegt sind:

Code
[19.09.2022 09:32:18]   2022-02-02T02:36      XXXXXX fehlerhaft (insert failed, rollback successful; nested exception is: 
  com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`hibiscus`.`umsatz`, CONSTRAINT `fk_umsatz_umsatztyp` FOREIGN KEY (`umsatztyp_id`) REFERENCES `umsatztyp` (`id`))), überspringe


Nur Umsätze ohne Kategorie können erfolgreich importiert werden.

Wenn ich versuche, vor dem Import manuell das Konto anzulegen (mittels "Import aus Kontoverbindungen" o.ä.), verweigert Hibiscus den anschließenden Import aus dem Backup, da die Datenbank nicht mehr leer ist.

Es sieht für mich so aus, als würden die Kategorien vor den Konten importiert und das nicht im Rahmen einer gemeinsamen Transaktion, somit schlägt der Import fehl. Kann dies jemand bestätigen? Ist dies das richtige Forum, um ggf. auch den Entwickler zu erreichen?

Vielen Dank für Hinweise auf eine Lösung!

PS: Falls es relevant ist, ich verwende eine MariaDB, ohne den Adapter org.mariadb.jdbc.Driver -- die Anleitung empfiehlt dies nur für ein aus den Debian-Quellen installiertes Hibiscus, ich habe jedoch Mashup (und habe auf die Schnelle nicht herausgefunden, wie ich den Adapter installieren kann).
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 9144
Dabei seit: 03 / 2005
Betreff:

Re: MySQL-Import von Umsatzkategoien schlägt fehl

 · 
Gepostet: 19.09.2022 - 12:17 Uhr  ·  #2
Das ist tatsächlich ein Fehler in Hibiscus. Hintergrund: Damit die XML-Datei mit dem Datenbank-Dump korrekt importiert werden kann, müssen die Daten aus den Tabellen in der richtigen Reihenfolge in der Datei stehen - eben damit die jeweiligen Abhängigkeiten bereits in der Datenbank stehen, wenn ein Datensatz angelegt wird, der darauf referenziert. Konkret ist der Fehler hier, dass es erst seit kurzem möglich ist, Umsatzkategorien einzelnen Konten zuzuweisen. Vorher war das nicht möglich. Damit existiert jetzt eine Abhängigkeit von den Kategorien zu den Konten, die vorher nicht existierte. Ich hatte vergessen, den XML-Datenbank entsprechend zu ändern. Dort werden derzeit die Kategorien immer noch vor den Konten exportiert. Das ist jetzt aber falschn. Seit in einer Kategorie ein Konto angegeben werden kann, müssen erst die Konten exportiert werden. Im Quellcode habe ich das gerade korrigiert. https://github.com/willuhn/hib…59ff7777d9 - ist morgen im Nightly-Build.

Du könntest dir also wie folgt abhelfen:

a) Morgen das Nightly-Build installieren. Damit sollte es dann gehen.
b) Die erzeugte XML-Datenbank-Datei manuell in einem Texteditor öffnen und den Bereich mit den exportierten Konten manuell nach oben - vor die Kategorien - verschieben
c) oder die Umsatzkategorien vorher in Hibiscus bearbeiten und dort bei den betreffenden Kategorien die Referenz auf das Konto entfernen. Nach dem Import kannst du sie ja wieder den Konten zuordnen.
f0k
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 2
Dabei seit: 09 / 2022
Betreff:

Re: MySQL-Import von Umsatzkategoien schlägt fehl

 · 
Gepostet: 20.09.2022 - 08:04 Uhr  ·  #3
Vielen Dank für die schnelle Antwort und Fehlerbehebung! Auf Lösung c) bin ich kurz nach dem Absenden auch gekommen, war aber noch nicht wieder am Computer. Lösung b) hätte ich nicht erwartet, war für mich jetzt das einfachste und hat gut funktioniert! Danke sehr, und danke auch für die Software!
Gewählte Zitate für Mehrfachzitierung:   0