ich habe von Version 4.0.7 auf 4.1.6 aktualisiert
10.3.32-MariaDB
Wenn ich eine neue Konfiguration für den Kategoriereport anlegen möchte passiert nicht. (auch nichts im debug-modus, nicht mal Einträge im Error_log)
Wenn ich eine Konfiguration kopieren möchte erhalte ich Im Debug-Modus folgenden Fehler angezeigt.
S Q L - E R R O R
CODE: 00000
B A C K T R A C E
FILE: adm_program/system/classes/Database.php
LINE: 689
CALL: Database->showError()
FILE: adm_program/system/classes/TableAccess.php
LINE: 539
CALL: Database->queryPrepared()
FILE: adm_program/system/classes/CategoryReport.php
LINE: 419
CALL: TableAccess->save()
FILE: adm_program/modules/category-report/preferences.php
LINE: 60
CALL: CategoryReport->saveConfigArray()
Konflikt FK-Unterstüzung durch gemischte Tabellentypen innodb/myISAM (gelöst)
-
- Beiträge: 69
- Registriert: 9. Feb 2012, 21:26
Konflikt FK-Unterstüzung durch gemischte Tabellentypen innodb/myISAM (gelöst)
Zuletzt geändert von Langlaeufer am 9. Feb 2022, 14:53, insgesamt 2-mal geändert.
-
- Beiträge: 69
- Registriert: 9. Feb 2012, 21:26
Re: Anlegen einer neueren Konfiguration Kategoriereport funktioniert nicht
aus dem logfile
Admidio.INFO: SQL: INSERT INTO adm_category_report (crt_org_id,crt_name,crt_col_fields) VALUES (?,?,?) [1,"Test","p1,p2"]
Admidio.CRITICAL: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (***."adm_category_report", CONSTRAINT "adm_fk_crt_org" FOREIGN KEY ("crt_org_id") REFERENCES "adm_organizations" ("org_id") ON DELETE NO ACTION ON UPDATE NO ACTION) {"file":"***/adm_program/system/classes/Database.php","line":688,"class":"Database","function":"queryPrepared"}
oder fürs kopieren
Admidio.INFO: SQL: INSERT INTO adm_category_report (crt_org_id,crt_name,crt_col_fields) VALUES (?,?,?) [1,"Rollenzuordnung - Kopie","p2,p1,r2,c3,c16,c6,c4,adummy"] {"file":"***/adm_program/system/classes/Database.php","line":666,"class":"Database","function":"queryPrepared"}
Admidio.DEBUG: SQL: Execution time 0.518084 ms {"file":"***/adm_program/system/classes/Database.php","line":685,"class":"Database","function":"queryPrepared"}
Admidio.CRITICAL: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (***."adm_category_report", CONSTRAINT "adm_fk_crt_org" FOREIGN KEY ("crt_org_id") REFERENCES "adm_organizations" ("org_id") ON DELETE NO ACTION ON UPDATE NO ACTION) {"file":"***/adm_program/system/classes/Database.php","line":688,"class":"Database","function":"queryPrepared"}
Admidio.INFO: SQL: INSERT INTO adm_category_report (crt_org_id,crt_name,crt_col_fields) VALUES (?,?,?) [1,"Test","p1,p2"]
Admidio.CRITICAL: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (***."adm_category_report", CONSTRAINT "adm_fk_crt_org" FOREIGN KEY ("crt_org_id") REFERENCES "adm_organizations" ("org_id") ON DELETE NO ACTION ON UPDATE NO ACTION) {"file":"***/adm_program/system/classes/Database.php","line":688,"class":"Database","function":"queryPrepared"}
oder fürs kopieren
Admidio.INFO: SQL: INSERT INTO adm_category_report (crt_org_id,crt_name,crt_col_fields) VALUES (?,?,?) [1,"Rollenzuordnung - Kopie","p2,p1,r2,c3,c16,c6,c4,adummy"] {"file":"***/adm_program/system/classes/Database.php","line":666,"class":"Database","function":"queryPrepared"}
Admidio.DEBUG: SQL: Execution time 0.518084 ms {"file":"***/adm_program/system/classes/Database.php","line":685,"class":"Database","function":"queryPrepared"}
Admidio.CRITICAL: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (***."adm_category_report", CONSTRAINT "adm_fk_crt_org" FOREIGN KEY ("crt_org_id") REFERENCES "adm_organizations" ("org_id") ON DELETE NO ACTION ON UPDATE NO ACTION) {"file":"***/adm_program/system/classes/Database.php","line":688,"class":"Database","function":"queryPrepared"}
-
- Beiträge: 69
- Registriert: 9. Feb 2012, 21:26
Re: Anlegen einer neueren Konfiguration Kategoriereport funktioniert nicht
Ich hab jetzt die Bedingung adm_fk_crt_org gelöscht.
Jetzt funktioniert das Einfügen.
Ich kann den Constraint auch nicht neu erstellen. Die Tabelle adm_organizations wird mir nicht angeboten (hier werden nur Tabellen vom Typ InnoDB angezeigt). adm_organizations ist von typ MyISAM.
Was kann ich dagegen tun?
Datenbank neu erstellen und alle daten neu importieren?
Ich hab den Eindruck, alte Tabellen sind vom Typ MyISAM und neuere vom Typ InnoDB. MyISAM unterstützt keine Fremdschlüssel
Jetzt funktioniert das Einfügen.
Ich kann den Constraint auch nicht neu erstellen. Die Tabelle adm_organizations wird mir nicht angeboten (hier werden nur Tabellen vom Typ InnoDB angezeigt). adm_organizations ist von typ MyISAM.
Was kann ich dagegen tun?
Datenbank neu erstellen und alle daten neu importieren?
Ich hab den Eindruck, alte Tabellen sind vom Typ MyISAM und neuere vom Typ InnoDB. MyISAM unterstützt keine Fremdschlüssel
Re: Konflikt FK-Unterstüzung durch gemischte Tabellentypen innodb/myISAM
Hi,
Admidio hatte schon immer InnoDB genutzt, allerdings konnte es sein, dass dein Webhoster früher kein InnoDB angeboten hat, dann hat MySQL automatisch MyIsam-Tabellen erstellt.
Du kannst die entsprechenden Tabellen aber auf InnoDB umstellen:
https://www.techandme.se/convert-myisam-to-innodb/
Viele Grüße
Fasse
Admidio hatte schon immer InnoDB genutzt, allerdings konnte es sein, dass dein Webhoster früher kein InnoDB angeboten hat, dann hat MySQL automatisch MyIsam-Tabellen erstellt.
Du kannst die entsprechenden Tabellen aber auf InnoDB umstellen:
https://www.techandme.se/convert-myisam-to-innodb/
Viele Grüße
Fasse
-
- Beiträge: 69
- Registriert: 9. Feb 2012, 21:26
Re: Konflikt FK-Unterstüzung durch gemischte Tabellentypen innodb/myISAM
Danke Fasse für den Tipp.
Ich hab jetzt aber sicherheitshalber die Datenbank neu anlegen lassen,
alle Einträge gelöscht und aus dem Backup neu importiert.
So sollte auch die Tabellenstruktur wieder vollkommen richtig sein.
Jetzt funktioniert auch alles.
Ich hab jetzt aber sicherheitshalber die Datenbank neu anlegen lassen,
alle Einträge gelöscht und aus dem Backup neu importiert.
So sollte auch die Tabellenstruktur wieder vollkommen richtig sein.
Jetzt funktioniert auch alles.