Quantcast
Channel: Linux – Seite 18 – mynethome.de
Viewing all articles
Browse latest Browse all 89

RoundcubeMail 0.4 Upgrade – Fremdschlüsselprobleme

$
0
0

Eine kurze Notiz, falls jemand der Releaseverkündung von RoundcubeMail 0.4 (einer sehr guten Webmail-Oberfläche) folgt und „interessante“ Probleme nach dem Update hat. Zum Beispiel keine Gruppen im Adressbuch definieren oder keine neuen Kontakte hinzufügen kann.
Im Logfile sieht das dann zum Beispiel so aus:

[Native message: Cannot add or update a child row: a foreign key constraint fails (`rcmail/contactgroupmembers`, CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE)]

Das Problem ist anscheinen schon etwas länger bekannt und im Ticket #1486794 dokumentiert. Allerdings wurden die Erkenntnisse leider nicht in das Updateskript mit aufgenommen und ist es Wahrscheinlichkeit, dass man bei einem Upgrade aufgrund verschiedener Tabellenformate in der Datenbank auf Schwierigkeiten stößt. Da man Roundcube evtl. schon seit einer Weile einsetzt möchte man natürlich nicht seine ganz Datenbank frisch initialisieren (zumal einem dann vermutlich einige User wegen verlorener Adressbücher aufs Dach steigen würden).

Sollten sich also der Verdacht bestätigen und man Tabellen verschiedener Formate in der Roundcube Datenbank vorfinden (wie das z.B. im PhpMyAdmin aussieht zeigt der Screenshot), kann man das Problem anscheinend damit lösen, dass man alle Tabellen zu InnoDB umwandelt. Dafür muss man für jede Tabelle ein „ALTER TABLE“ Befehl absetzen, so dass dies im Ergebnis dann zum Beispiel so aussehen kann (vor Copy/Paste Backup nicht vergessen und prüfen, ob’s wirklich für die eigene DB passt):

ALTER TABLE `cache` ENGINE=InnoDB;
ALTER TABLE `session` ENGINE=InnoDB;
ALTER TABLE `messages` ENGINE=InnoDB;
ALTER TABLE `users` ENGINE=InnoDB;
ALTER TABLE `contacts` ENGINE=InnoDB;
ALTER TABLE `identities` ENGINE=InnoDB;

Die Erklärung dafür findet sich z.B. in der MySQL Dokumentation, die ganz klar sagt

Beide Tabellen müssen InnoDB-Tabellen sein und dürfen keine TEMPORARY-Tabellen sein.

Und deshalb hat man sich bei Roundcube kurzerhand dafür entschieden, alle Tabellen zu InnoDB-Tabellen zu machen.

Also kurz die Tabellen angepasst, schon funktioniert auch die wunderbare Gruppenfunktionalität im Adressbuch des Roundcube Webmail :)

Getestet und eingesetzt auf Ubuntu 9.10 und 10.04 mit MySQL 5 und PHP 5.3.

Viel Erfolg beim Upgrade und viel Spaß noch mit Roundcube ;-)


Viewing all articles
Browse latest Browse all 89

Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.



Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.