Import oder Export von großen Seitenbäumen in TYPO3

Import oder Export von großen Seitenbäumen in TYPO3

Ihr kennt das: Mit Hilfe des Paketes typo3/cms-impexp lässt sich Content als XML oder T3D zuerst exportieren und anschließend wieder importieren. Manchmal kommt dies jedoch an die Grenzen. Und hier haben wir vielleicht etwas für euch.

Es liegt in der Natur eines Apache oder Nginx Servers, dass jeder PHP-Prozess nur eine kurze Dauer laufen soll. Dazu kommt auch noch das memory_limit, das oft nur wenige hundert MB pro Prozess zulässt. Anders verhält es sich mit Prozessen, die über die CLI angestoßen werden. Leider gibt es noch keinen funktionierenden Im- und Export von typo3/cms-impexp.

Wir haben bereits vor längerem ein TYPO3 Paket gebaut, das einem rund um TYPO3-Migrationen helfen kann. Neben vielen nützlichen Werkzeugen für Migrationen, bietet in2code/migration zusätzlich CLI-Funktionen, um große Seitenbäume mit allen Datensätzen und Dateien als JSON zu exportieren und anschließend wieder zu importieren.

Zuerst muss das Paket jedoch per Composer installiert werden

composer require --dev in2code/migration

Anschließend kann man über eine Konfigurationsdatei in einer eigenen Extension alle benötigten Settings vornehmen. In der Migrations- oder in der Im-/Export-Dokumentation stehen weitere Details hierzu.

Ab jetzt lassen sich auch sehr große Seitenbäume oder ganze TYPO3-Instanzen zusammenführen.

Beispiel-Export:

# Export page with pid123 and all its subpages into a json file ./vendor/bin/typo3cms migration:export 123 > /home/user/export.json

Und anschließend der Beispiel-Import:

# Import page branch with subpages and files into page with uid 123 ./vendor/bin/typo3cms migration:import /home/user/export.json 123

Tip: Ab einer Größe der JSON-Datei von 6-10GB (für Seitenbäume mit vielen tausend Seiten und ähnlich vielen Dateien wie PDF-, Video- oder Bilddateien), kann man darüber nachdenken, die Einbindung von Dateien aus dem fileadmin-Verzeichnis (oder anderen Storages) per Konfiguration zu unterbinden.

Alexander Kellner

Alex Kellner

Alex Kellner ist nicht nur für seine vielen TYPO3-Erweiterungen wie zum Beispiel powermail, femanager oder lux sondern auch für seinen Community-Einsatz bekannt. Er gibt auch gerne Administrations- oder Entwicklungsschulungen oder Worksshops.

Alexander Kellner  |  Geschäftsführung & COO

TYPO3: Finding pages in mixed mode

In TYPO3, Mixed Mode refers to translated pages that contain content only partially related to the corresponding content in the main language. This is indicated in the backend by an error message. But...

Zum Beitrag

Extbase Extensions: Think extensibility with data, site and language

Today, I have a small request for the TYPO3 extension authors out there: Make sure your extensions are extensible. This will also promote the distribution of the corresponding plugins.

Zum Beitrag

SQL: Show all tables sorted by size in descending order

Lately I've been using the SQL command more often to find out which tables in the TYPO3 database are the largest. I've published the snippet once.

Zum Beitrag

TYPO3 12 with CKEditor 5: Styles in a single selection

If you set a link in the RTE in TYPO3, you may have to choose between different link classes, for example to create buttons in the frontend. What's new in TYPO3 12 is that you can select not just one...

Zum Beitrag

Null-Safe Operator in the TYPO3 area

With the introduction of PHP8, problems with undefined arrays or variables in general can arise in many places. Here are a few examples and simple solutions.

Zum Beitrag

Delete the first/last lines of a (SQL) file

There isn't much to say about the following commands. Sometimes it can be useful to delete the first (or last) X lines from a file. And if the file is too large to open with a conventional program, a...

Zum Beitrag