Joomla Update (Migration) von 2.5.28 auf 3.4.1 erzeugt 1091 Fehler
Für einen Webdesign Kunden sollte ich auf seiner Homepage eine Joomla Migration (eigentlich ist dies ja keine Migration sondern ein Update) von Version Joomla 2.5.22 auf die aktuelle Version Joomla 3.4.1 durchführen. Insgesamt besitzt dieser Kunde 7 Homepages mit Joomla Installationen in der gleichen Version. 6 davon unterscheiden sich im Webdesign kaum voneinander und haben eine nahezu identische Joomla-Installation. Sie ließen sich reibungslos migrieren. Bei der letzten Homepage jedoch hagelte es dann Fehlermeldungen.
Ich habe auf der Website zuerst das Joomla Update von 2.5.22 auf 2.5.28 durchgeführt. Anschließend Joomla auf Kurzzeitsupport umgestellt und das Joomla Update von Version 2.5.28 auf Version 3.4.1 über die Schaltfläche im Kontrollzentrum durchgeführt. Das Joomla Update bricht bei ca. 86% ab und erzeugt im Backend den folgenden Fehler:
1091 – Es ist ein Fehler aufgetreten
Can't DROP 'imagepos'; check that column/key exists SQL=ALTER TABLE `itbasis_contact_details` DROP `imagepos`;
Im Frontend der Website erscheint eine 404-Meldung als html-Quelltext (hier in Layout-Ansicht dargestellt).
Nachdem diverse eigene Lösungsansätze und auch Tipps anderer Webdesigner keine Abhilfe schaffen konnten, hat mir dann doch noch ein Tipp bei stackoverflow weitergeholfen:
http://stackoverflow.com/questions/20738790/migrate-from-joomla-2-5-17-to-joomla-3-2-1-failed
Mit Hilfe dieser Informationen bin ich dann folgendermaßen vorgegangen:
- Joomla-Update auf Version 2.5.28 und Update aller installierten Komponenten soweit möglich. Nicht Joomla-3-kompatible Erweiterungen löschen.
- Das Verzeichnis „updates“ im Ordner root/administrator/components/com_admin/sql/ löschen (root durch den eigenen Serverpfad ersetzen!).
- Jetzt das Joomla-Update über das Kontrollzentrum durchführen
-> es erscheint wieder nach 86% die bekannte Fehlermeldung 1091 (s.o).
- phpMyAdmin aufrufen, die Datenbank öffnen und über folgenden SQL-Befehl die Tabelle #__content_types manuell anlegen (#_ durch das eigene Tabellen-Präfix ersetzen!).
CREATE TABLE IF NOT EXISTS `#__content_types` ( `type_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `type_title` varchar(255) NOT NULL DEFAULT “, `type_alias` varchar(255) NOT NULL DEFAULT “, `table` varchar(255) NOT NULL DEFAULT “, `rules` text NOT NULL, `field_mappings` text NOT NULL, `router` varchar(255) NOT NULL DEFAULT “,`content_history_options` varchar(5120) COMMENT ‚JSON string for com_contenthistory options‘, PRIMARY KEY (`type_id`), KEY `idx_alias` (`type_alias`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10000;
- Direkt über die Homepage URL die Funktion „Datenbank reparieren“ ausführen (meine-homepage.de durch eigene URL ersetzen!):
www.meine-homepage.de/administrator/index.php?option=com_installer&task=database.fix
- direkt über die Homepage URL die Funktion „Erweiterungen überprüfen“ ausführen (meine-homepage.de durch eigene URL ersetzen!):
administrator/index.php?option=com_installer&view=discover&task=discover.refresh
und alle Erweiterungen überprüfen/installieren
Nun sieht im Frontend der Website alles wieder schick aus, aber das Backend ist noch ein bisschen durcheinander. Hier ist noch das Bluestork-Template aus Joomla 2.5 zugewiesen. Dies muss durch das Joomla 3 Template Isis ersetzt werden.
In der momentanen Backend-Ansicht funktioniert das leider nicht; rufe ich das Isis-Template über Erweiterungen – Templates auf, so ist es bereits als Standard-Template ausgewählt und auch ein erneutes Speichern bringt keinen Erfolg. Also muss die Einstellung direkt in der Datenbank vorgenommen werden:
- phpMyAdmin aufrufen und Datenbank öffnen
- Tabelle #__template_styles suchen und öffnen
hier sieht man bereits, dass in der Spalte „home“ das Bluestork-Template durch die Eins zugewiesen ist. Hier muss beim Bluestork die Eins durch eine Null ersetzt werden und beim Isis genau anders herum
- In Zeile Bluestork auf bearbeiten klicken und die Eins durch eine Null ersetzen, anschließend mit OK speichern
- In Zeile Isis auf bearbeiten klicken und die Null durch eine Eins ersetzen, anschließend mit OK speichern
- Das Bluestork-Template kann anschließend deinstalliert werden, da es unter Joomla 3 sowieso nicht funktioniert.
Jetzt sieht auch das Backend der Homepage wieder schick aus, alles funktioniert und der Webdesign Kunde ist zufrieden mit seiner Webdesignerin 🙂.