Fehler beim Update von 1.4.8 auf 1.5
-
Hallo,
wir haben seit einiger Zeit i-doit open 1.4.8 (auf Windows) im Einsatz. Jetzt habe ich i-doit von Windows auf Linux umgezogen und wollte nach einem kurzen Test die Version bis auf 1.9 aktualisieren.
Aber beim Update auf 1.5 kommt folgende Fehlermeldung:
Adding index unique_title to isys_model_title.. Added. ERROR
Database error : Query error: 'ALTER IGNORE TABLEisys_model_title
ADD UNIQUEunique_title
(isys_model_title__title
,isys_model_title__isys_model_manufacturer__id
)':Cannot delete rows from table which is parent in a foreign key constraint 'isys_catg_model_list_ibfk_6' of table 'isys_catg_model_list'Wenn ich das ignoriere und weitermache, dann laufen die Updates bis 1.9 fehlerfrei durch.
Kann ich den Fehler beheben oder ignorieren?
Danke und Grüße
Johannes -
Hallo Johannes,
das sieht für mich jetzt nicht tragisch aus. Du kannst aber die Foreign-Key-Checks vor dem Update deaktivieren:
SET FOREIGN_KEY_CHECKS=0;
Dann sollte die Meldung nicht auftreten. Ob du die Umgebung trotz der Meldung problemlos nutzen kannst, kann ich dir nicht sicher beantworten, weswegen ich das Raten mal sein lasse.
Lieben Gruß
Christian -
Hi,
um das mal etwas ausführlicher zu machen:
Log Dich in das MySQL Kommandozeilentool ein. Dort schickst Du ein
SET foreign_key_checks = 0;
ab. Dann führst Du das Update erneut aus. Anschließend setzt Du das Kommando:
SET foreign_key_checks = 1;
um die Foreign Key Checks wieder zu aktivieren.
Zur Erklärung: Die Foreign Key Checks sorgen für eine "saubere Verbindung" zwischen zwei Tabellen. Das Update will einen Teil einer Tabellenverbindung verändern, und das verhindert der Foreign Key Check. Warum auf Deiner Datenbank dieser Effekt zustande kommt, lässt sich so nicht genau sagen. Mach idealerweise ein Backup von der Datenbank und guck Dir nach dem Update die Funktion genau an. Die Tabellen, die betroffen sind, sind die Verknüpfungen von Modell und Hersteller. D.h. Du solltest überprüfen, ob nach dem Update alle Deine gepflegten Hersteller und Modelle noch so da sind, wie sie sein sollten.
Wenn nicht, müssten wir gemeinsam anhand eines Datenbankdumps vom funktionierenden Zustand die Daten dort wieder neu befüllen. -
Das Update hat funktioniert und so weit ich sehe sind auch Hersteller und Modelle richtig übernommen worden.
Danke.