Random thoughts and musings. Part of an oliology.

oliology.diary

Dienstag, September 04, 2007

Moving a TYPO3 installation
TYPO3-Installation umziehen

I've just faced the task to move the most important data of a TYPO3 installation. These were the challenges of this task:

  • The installation is far too big to export the tree as a T3D file (even when increasing memory_limit, max_execution_time and max_input_time in php.ini).
  • The old installation was still running on MySQL 4.0 using a Windows 1252 charset (disguised as ISO8859-1) while we wanted UTF-8 on the new site.
  • Some tables (like tt_content) also are too big to import them in phpMyAdmin.
  • After the import into the new system, the page tree was empty at first. And the backup had a size of 0 bytes. :-(
  • The installation is so big that creating the reference index fails with a timeout.

So that's how I proceeded:

  1. Group the tables packages and export them using phpMyAdmin (with the DROP TABLE option so I wouldn't have any garbage in the new tables). I used the following packages:
    • pages, content, templates and domains
    • FE and BE users and user groups
    • extensions
    • tt_address
  2. If the tables are packed, unzip them using gunzip.
  3. Recode the tables to UTF-8:
    recode windows-1252..utf8 *.sql
  4. Import the tables, each at a time:
    mysql -u typo3 -p typo3 --default_character_set utf8 < content.sql
  5. In the TYPO3 install tool, do a DB compare to add the missing DB columns so that the page tree will be visible again. :-)
  6. Copy the files in fileadmin.
  7. Create a non-admin BE user _cli_lowlevel. Then update the reference index on the command line:
    php-cli ./cli_dispatch.phpsh lowlevel_refindex -e

Ich stand gerade vor der Aufgabe, die wichtigsten Daten einer TYPO3-Installation umzuziehen. Dabei waren folgende Herausforderungen zu meistern:

  • Die Installation ist viel zu groß, um den Baum als T3D zu exportieren (sogar wenn ich memory_limit, max_execution_time und max_input_time in der php.ini hochsetze).
  • Die alte Installation läuft noch mit MySQL 4.0 und dem Zeichensatz Windows 1252 (verkleidet als ISO8859-1), während wir auf der neuen Installation UTF-8 haben wollen.
  • Einige Tabellen (zum Beispiel die tt_content) sind ebenfalls viel zu groß, um sie in phpMyAdmin zu importieren.
  • Nach dem Import ins neue System war der Seitenbaum zuerst komplett leer. Und das Backup hatte eine Größe von 0 Bytes, wie sich dann herausstellte. :-(
  • Die Installation ist so groß, dass das Erstellen des Referenzindexes mit einem Timeout abbricht.

Ich bin schließlich folgendermaßen vorgegangen:

  1. Die Tabellen in halbwegs sinnvoll zusammenhängenden Paketen in phpMyAdmin exportieren (inklusive der DROP TABLE-Option, damit ich keinen Müll in den neuen Tabellen habe). Ich habe die folgenden Tabellenpakete geschnürt:
    • Seiten, Inhalte, Templates und Domains
    • FE- und BE-User und Usergruppen
    • Extensions
    • tt_address
  2. Die Tabellen mit gunzip entpacken, falls sie gepackt waren.
  3. Die Tabellen nach UTF-8 umkodieren:
    recode windows-1252..utf8 *.sql
  4. Die Tabellen eine nach der anderen importieren:
    mysql -u typo3 -p typo3 --default_character_set utf8 < content.sql
  5. Im TYPO3-Install-Tool den DB-Compare machen, damit die fehlenden Spalten in der DB angelegt werden und der Pagetree wieder zu sehen ist. :-)
  6. Die Dateien in fileadmin kopieren.
  7. Einen Nicht-Admin-BE-User _cli_lowlevel anlegen und dann auf der Kommandozeile den Referenzindex aktualisieren:
    php-cli ./cli_dispatch.phpsh lowlevel_refindex -e

Oliver @ 18:54 | Permalink | 0 comments/Kommentare

|

Good people

Good Software

Archive