Zur Zeit mach' ich echt seltsame Sachen. Ubuntu in meiner Virtual Box installieren zum Beispiel. Und nun ein Joomla Upgrade. Nachdem ich gefragt wurde, ob ich das machen könnte, richtete ich eine Testumgebung ein und vollzog die Migration in sicherer Umgebung. Da meines Wissens nicht nur noch einige Joomla 1.0.x online sein sollen, sondern ab dem 22. Juli diesen Jahres auch die Weiterentwicklung daran eingestellt wird, schreibe ich (mir) die wichtigsten Schritte vorsichtshalber hier auf.
Von Joomla 1.o.12 auf Joomla 1.5.x kann man eigentlich nicht upgraden. Der Vorgang nennt sich in dem Fall Migration. Das wird dann erforderlich, wenn sich an den Datentabellen eines Systems etwas verändert hat, und die Inhalte daher nicht mehr eins zu eins vom darüber installierten Upgrade eingelesen werden können. Weil mir Datenstrukturen mehr sagen als unvertraute Content-Management-Oberflächen, war klar, dass ich den Weg der händischen Migration gehe.
Zuerst kopierte ich das komplette Web vom Server in ein Webverzeichnis meines virtuellen Ubuntus, importierte die Datenbanksicherung, änderte die configuration.php auf die lokalen Bedingungen und rief die Site auf (eine Installation des Joomla-CMS ist auf diese Weise nicht erforderlich).
Zwei grundlegende Änderungen in der Datenbankstruktur haben sich abgespielt die einem Upgrade wie man es sonst bei neuen CMS-Versionen kennt, im Wege stehen. Die erste sah ich - anfangs Ahnungslose - auch gleich nach dem Aufruf der lokalen Webkopie. Die Umlaute waren futsch. Dies war ein leidiger, jedoch glücklicherweise abklingender Nebeneffekt einer Phase, in der gängige Systeme bei denen früher regionale Gegebenheiten den verwendeten Zeichensatz bestimmten, auf den universellen Zeichensatz UTF-8 umgestellt werden mussten, und damit die Umlaute in manchen MySQL-Datenbanken zu kryptischen Wortunterbrechungen mutierten.
Ein häufig benutzter Zeichensatz (#1) in unserem Sprachraum war früher ISO 8859-1 (in der MySQL-Admin-Exportdatei latin1), und daraus sollte nun UTF-8 werden. Spontan hatte ich die Idee, im Webdevoloper Express (mit dem editiere ich alles was mit Webentwicklung zu tun hat) eine leere Textdatei zu öffnen, den Inhalt der gesicherten Datenbank hinein zu kopieren und neu zu speichern (alternativ: Windows-Editor, Datei speichern unter..., Dateityp alle Dateien datenbanknamen.sql, und im Dropdownfeld Codierung im unteren Bereich des Dialogfensters Speichern unter UTF-8 auswählen - bedauerlicherweise muss man hierbei jedoch auf die Zeilenumbrüche verzichten, doch jeder Editor mit dem Webseiten entwickelt werden können, sollte dazu geeignet sein).
Den Zeichensatz nur anders zu definieren reicht nicht, da die Zeicheninformation bereits in der Datei selbst festgelegt ist - das gilt übrigens auch für alle anderen Webdokumente, in denen Zeichensätze angegeben sind, und etwaige Verwirrungen bei Umlauten sind auf dieselbe Weise zu lösen. Dann braucht man nur noch den Zeichensatz im Beschreibungskopf der Datenbank umbenennen, latin1 wird zu utf8. Das kam dann in eine eigene Datenbank, die Konfiguration des alten Webs änderte ich entsprechend, und da waren sie alle wieder - die Umlaute.
Joomla 1.5.x muss komplett neu installiert werden. Die Beispieldaten abwählen. Stattdessen die Option Migration auswählen, und einfach auf die Angabe eines Migrationsskriptes verzichten (es sei denn, es ist tatsächlich eines vorhanden natürlich). Die neue von 1.5.x angelegte Datenbank im Originalzustand sichern (mit DROP und CREATE Table, falls beim Einlesen der INSERTs aus der alten Datenbank was schief geht, dann hat man ein 1.5.x-Backup für die Wiederherstellung einer frischen, leeren Installation). Daher beim für die Migration vorgesehenen Export der Daten aus der 1.0.x-Version keinesfalls die Tabellen generieren lassen (kein Häkchen im Block Struktur), sondern nur vollständige INSERTs anhaken, so dass später jeder Wert dem richtigen Feldnamen zugeordnet werden kann, auch wenn mal ein neues Feld dazwischen liegen sollte. Die UTF-8-Umwandlung nicht vergessen (oder eine Kopie der Backupdatei bearbeiten und dort die Tabellenstrukturen entfernen).
Bei zwei Tabellen ist es erforderlich, je einen Feldnamen zu ändern (#2). Auch das lässt sich ganz einfach in der Textdatei in den INSERTs berichtigen - deren Inhalte mussten bei mir jedoch gar nicht übertragen werden. Bei der ersten Tabelle werden es ansonsten alle Einträge ab der zweiten Zeile sein. Die erste ist bereits während der Installation belegt worden vom Administrator.
in der 'jos_core_acl_aro' Tabelle heißt das erste Feld statt 'aro_id' nun 'id'.
in der 'jos_core_acl_aro_groups' Tabelle, wird aus dem ersten Feld 'group_id' ebenfalls 'id'.
Mit dem MySQL-Query-Browser öffnete ich die Textdatei (datenbankname.sql) mit den zu übernehmenden Daten als Skriptdatei. Das erste Ausführen zeigt die Dateninhalte an, das zweite überträgt sie dann in die neue 1.5.x-Joomladatenbank. Beteiligt waren hierbei nur die Daten einer Grundinstallation, ohne Zusatzmodule. Die werde noch extra abgehandelt und die Tabellen mit dem QueryBrowser Erweiterung für Erweiterung befüllt.
Nur die Inhalte nachfolgender Tabellen übertrug ich in die neue Datenbank:
`jos_categories` (wichtig)
`jos_contact_details`
`jos_content` (wichtig)
`jos_content_frontpage`
`jos_content_rating`
`jos_core_acl_aro` (erst ab der 2. Zeile!)
`jos_core_acl_groups_aro_map` (Eintrag der mit Bestehendem identisch war, weggelassen)
`jos_menu` (wichtig)
`jos_newsfeeds`
`jos_sections`
`jos_stats_agents`
`jos_users` (erst ab der 2. Zeile)
`jos_weblinks`
Da dies mehr eine nächtliche Schilderung wurde, ergänzend zwei Links, die mir als eine Anleitung geeignet erscheinen.
http://www.nik-it.de/joomla/wissenswertes/content-auf-joomla-1.5-umstellen.html
http://www.joomigration.de/Tutorial/tutorial-einleitung.html