Typo3 Seiten wiederherstellen nachdem sie rekursiv gelöscht wurden

Nutzen Sie hierfür Ihre MySQL Konsole oder besser PhpMyAdmin, aber machen Sie auf jeden Fall vorher ein Backup mit mysqldump oder der Exportfunktion. Im Idealfall sichern Sie die gesamte Datenbank in einer backup.sql Datei!

Wir zeigen Ihnen wie Sie per SQL einfach, schnell und zuverlässig Seiten und deren Content (pages, tt_content) wiederherstellen können

    •  » 
    •  » Rekursiv Gelöschte Seiten und Inhalt wiederherstellen
// navigation

Blog


// content

10. Feb 2018

Wir benötigen zuerst tstamp, um zu ermitteln welcher Zeitraum gelöschter Elemente wiederhergestellt werden soll

Hierfür stellen wir die folgende Anfrage an die Datenbank:

SELECT tstamp FROM pages WHERE deleted = 1 ORDER BY tstamp DESC;

Dieser Befehl listet uns die letzten Änderungen aller Seiten in der Datenbank. Da wir das Löschen sofort bemerkt haben, sollten wir hier den relativ aktuellen Zeitstempel erhalten. Um nun eine Stunde zurückzugehen ziehen wir von dem im Sekundenformat gespeicherten Wert 3600 ab. Unser letzter Zeitstempel ist zurzeit 1435760161, also erhalten wir 1435756561 als letzten Zeitstempel der Wiederherstellung.

Nun führen wir diese Befehle nacheinander in der Datenbank aus:

UPDATE pages SET deleted = 0 WHERE deleted = 1 and tstamp > 1435756561;
UPDATE tt_content SET deleted = 0 WHERE deleted = 1 and tstamp > 1435756561;

Die Prüfung auf deleted = 1 benötigen wir nur aus Performance-Gründen. Ansonsten würde man alle Seiten, die in der letzten Stunde bearbeitet wurden, aktualisieren, was in großen Systemen schon ein paar Sekunden brauchen könnte. Außerdem möchten wir uns vor Fehlern absichern, falls die Spalte erweitert wurde (um eine 2 für inaktive Seiten beispielsweise).

Die Befehle sind übrigens sicher anwendbar, allerdings empfehlen wir dennoch ein komplettes Datenbank-Backup vorab. Prüfen Sie nun im Typo3 Backend, ob alles wieder da ist und schauen Sie im Frontend, ob die Seiten auch korrekt angezeigt werden. Sie sollten auf jeden Fall anschließend nochmal die beiden Typo3 Tabellen und die History durchschauen, um zu prüfen, ob alle Einträge wiederhergestellt worden sind, die ausversehen gelöscht wurden.

Um Ihre aktuelle Uhrzeit oder jede andere in einen Timestamp (Zeitstempel) umzuwandeln, können Sie diesen Timestamp-Rechner verwenden. Bedenken Sie, dass der tstamp-Wert für alle Zeitzonen derselbe ist, aber natürlich die Uhrzeit und Zeitzone einen Unterschied macht, wenn Sie diese in den Timestamp umrechnen (schließlich ist 9am New York nicht dieselbe Sekunde wie 9 Uhr morgens in Berlin).

Sie können natürlich auch einen beliebigen Zeitstrahl selektieren:

UPDATE pages SET deleted = 0 WHERE deleted = 1 AND tstamp > 1435736561 AND tstamp < 1435746561;
UPDATE tt_content SET deleted = 0 WHERE deleted = 1 AND tstamp > 1435736561 AND tstamp < 1435746561;

Bei dieser Abfrage werden alle Einträge auf "nicht gelöscht" gesetzt, die zwischen den beiden Zeitwerten liegen. Gott sei Dank löscht Typo3 die Einträge nicht direkt, sondern setzt einfach die "deleted"-Spalte auf 1, also setzt einen Wert von 0 auf 1 und übermittelt somit den gelöschten Status, blendet diese Seiten und Inhalte also komplett aus (im Unterschied zu hidden, wo diese Einträge zumindest im Backend noch ausgegraut sichtbar sind).

MySQL Befehle mit Editierfunktion und Fehlererkennung zum Wiederherstellen von Seiten und Content in Typo3

mysql


# Wir holen uns erstmal die tstamp Werte für die letzten Bearbeitungen (Löschvorgänge):
SELECT tstamp FROM pages WHERE deleted = 1 ORDER BY tstamp DESC;

# Alternativ können Sie auch nur die Werte für den Inhalt aus tt_content auslesen:
SELECT tstamp FROM tt_content WHERE deleted = 1 ORDER BY tstamp DESC;

# Nun updaten wir alle gelöschten Einträge und setzen daher deleted auf 0, die Einträge sind sofort wieder im Backend und Frontend
UPDATE pages SET deleted = 0 WHERE deleted = 1 AND tstamp > 1435736561 AND tstamp < 1435746561; #Editieren Sie den Wert!
UPDATE tt_content SET deleted = 0 WHERE deleted = 1 AND tstamp > 1435736561 AND tstamp < 1435746561; #Editieren Sie den Wert!
Rating: 4.5. 2 Bewertung(en).
2 anonyme Bewertungen
No rating done at all.
Dein Voting war (0 von 5) Du bist nicht eingeloggt.
Um persönliche Votings abzugeben, kannst du dich einloggen.
Click the rating bar to rate this item Please log on to do ratings

Kommentare

comments powered by Disqus