Tatsächlich liegt der Fehler zu dieser Meldung "Foreign key constraint is incorrectly formed" bei MySQL bzw. in meinem Falle MariaDB. Ich habe mich daher auf dem Server in MySQL eingeloggt. Mit SHOW ENGINES; kann man sehen, welche Engines es auf dem Server gibt. Es hatten sich in den tables der fakturama-Datenbank zwei verschiedene Engines etabliert (wie auch immer das passiert ist). Einige hatten MyISAM, andere InnoDB. Das kann man sich folgendermaßen anzeigen lassen: use fakturama; show table status where Engine='MyISAM'; show table status where Engine='InnoDB'; Sollte es bei beiden Befehlen eine Ausgabe geben, liegt hier die Ursache. Mit SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE='MyISAM' AND table_schema = 'fakturama'; wird nun ein Ausgabe generiert, die man Zeile für Zeile als Befehl ausführen muss: ALTER TABLE FKT_DOCUMENT ENGINE=InnoDB; ALTER TABLE FKT_DELIVERY ENGINE=InnoDB; ALTER TABLE FKT_WEBSHOP ENGINE=InnoDB; ... Das sind einige, aber danach sollten alle tables als Engine InnoDB haben, bzw. keine tables unterschiedlich sein. Das kann man noch mal mit show table status where Engine='MyISAM'; überprüfen. Sicherheitshalber habe ich Fakturama 2.1.2d noch einmal komplett neu installiert, und auch die Einstellungen in ~/.fakturama gelöscht (natürlich NICHT das Arbeitsverzeichnis). Nach einem Neustart hatte Fakturama dann sukzessive die Daten migriert und alles war wieder da. Nun läuft's.