Mit dem Standalone Restore Tool können Sie das Verhalten beim Wiederherstellen über eine JSON-Konfigurationsdatei anpassen. So lassen sich Restore-Filter ähnlich wie im WordPress-Plugin verwenden, auch wenn WordPress selbst nicht läuft.
Hinweis: Wenn keine wpstg-restore-config.json vorhanden ist, verwendet das Tool automatisch die Standardwerte.
So funktioniert es
- Legen Sie eine Datei mit dem Namen
wpstg-restore-config.jsonim selben Verzeichnis wiewpstg-restore.phpab. - Beim Start liest das Tool die Konfiguration ein und übernimmt die definierten Filterwerte.
- Fehlt die Datei, läuft der Restore wie gewohnt mit den Standardwerten.
Aufbau der Konfigurationsdatei
{
"version": 1,
"filters": {
"filter.name": "value"
}
}
version: Version des Konfigurationsschemas. Der Wert muss1sein.filters: Objekt mit den Filternamen und ihren jeweiligen Werten.
Ein vollständiges Beispiel mit allen verfügbaren Filtern und ihren Standardwerten finden Sie in wpstg-restore-config.example.json.
Verfügbare Filter
Boolesche Filter
Diese Filter akzeptieren die Werte true oder false.
| Filtername | Standardwert | Beschreibung |
|---|---|---|
wpstg.backup.restore.keepExistingPlugins | false | Wenn dieser Wert auf true gesetzt ist, werden vorhandene Plugins vor dem Restore nicht gelöscht. Die Plugins aus dem Backup werden stattdessen mit dem bestehenden Plugin-Verzeichnis zusammengeführt. |
wpstg.backup.restore.keepExistingThemes | false | Wenn dieser Wert auf true gesetzt ist, werden vorhandene Themes vor dem Restore nicht gelöscht. |
wpstg.backup.restore.keepExistingMuPlugins | false | Wenn dieser Wert auf true gesetzt ist, werden vorhandene Must-Use-Plugins vor dem Restore nicht gelöscht. |
wpstg.backup.restore.keepExistingMedia | false | Wenn dieser Wert auf true gesetzt ist, werden vorhandene Uploads und Mediendateien vor dem Restore nicht gelöscht. |
wpstg.backup.restore.keepExistingOtherFiles | false | Wenn dieser Wert auf true gesetzt ist, werden andere Dateien in wp-content vor dem Restore nicht gelöscht. |
wpstg.backup.restore.innodbStrictModeOff | false | Wenn dieser Wert auf true gesetzt ist, wird der InnoDB Strict Mode während des Datenbankimports deaktiviert. Das kann hilfreich sein, wenn das Backup von einem Server mit abweichenden InnoDB-Einstellungen stammt. |
Array-Filter
Diese Filter erwarten ein Array aus Strings.
| Filtername | Standardwert | Beschreibung |
|---|---|---|
wpstg.backup.restore.exclude_backup_parts | [] | Bestandteile des Backups, die beim Restore vollständig übersprungen werden sollen. Gültige Werte sind: plugins, themes, uploads, muplugins, wpcontent, wpstgdb, lang, dropins und wproot. |
wpstg.backup.restore.exclude_paths | [] | Verzeichnispfade, die beim Wiederherstellen von Dateien ausgeschlossen werden sollen. Ein abschließender / wird automatisch ergänzt. Dadurch passt "starter-templates" auf Pfade mit starter-templates/, aber nicht auf starter-templates-pro/. Beispiel: ["starter-templates", "elementor"]. |
wpstg.backup.restore.exclude.tables | [] | Datenbanktabellen, die beim Datenbank-Restore übersprungen werden sollen. Beispiel: ["wp_comments", "wp_commentmeta"]. |
wpstg.database.import.excludedQueries | [] | SQL-Abfragen, die beim Import ausgeschlossen werden sollen. Jede Abfrage, die einen der angegebenen Strings enthält, wird übersprungen. |
Wichtig: Bei exclude_paths ergänzt das Tool automatisch einen abschließenden Slash. So werden ungewollte Teiltreffer vermieden.
Beispielkonfigurationen
Restore ausführen, vorhandene Plugins und Themes aber behalten
{
"version": 1,
"filters": {
"wpstg.backup.restore.keepExistingPlugins": true,
"wpstg.backup.restore.keepExistingThemes": true
}
}
Nur die Datenbank wiederherstellen
Mit dieser Konfiguration werden alle dateibezogenen Bestandteile des Backups übersprungen.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": [
"plugins",
"themes",
"uploads",
"muplugins",
"wpcontent",
"dropins",
"wproot",
"lang"
]
}
}
Bestimmte Tabellen vom Datenbank-Restore ausschließen
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude.tables": [
"wp_comments",
"wp_commentmeta",
"wp_wc_orders"
]
}
}
Bestimmte Plugins und Themes vom Datei-Restore ausschließen
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_paths": [
"starter-templates",
"elementor",
"themes/flavor"
]
}
}
Nur Dateien wiederherstellen
Mit dieser Konfiguration wird der Datenbank-Restore übersprungen.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": ["wpstgdb"]
}
}
So werden die Filter verwendet
- Direkt durch
Restorer: Die FilterkeepExisting*,exclude_backup_partsundexclude_pathswerden direkt von der KlasseRestorerausgewertet. Sie steuern, welche Bestandteile wiederhergestellt werden, ob vorhandene Dateien vorab gelöscht werden und welche Pfade beim Restore übersprungen werden. - Über
ApplyFiltersTrait: Die datenbankbezogenen Filter wieexclude.tables,excludedQueriesundinnodbStrictModeOffwerden von der enthaltenen KlasseDatabaseImporterüber dasApplyFiltersTraitverarbeitet. Wenn keine WordPress-Hooks verfügbar sind, greift das Trait aufFilterConfigals Fallback zurück.
Validierung und Logging
- Unbekannte Filternamen werden als Warnung protokolliert und ignoriert.
- Falsche Datentypen, zum Beispiel ein Array statt eines booleschen Werts, werden als Warnung geloggt und übersprungen.
- Alle aktiven Filter werden beim Start des Restores zu Debugging-Zwecken protokolliert.
- Fehlerhaftes JSON führt zu einer Warnung. Der Restore läuft trotzdem mit den Standardwerten weiter.
- Nicht unterstützte Konfigurationsversionen führen zu einer Warnung. In diesem Fall werden alle Filter übersprungen.
Debugging-Tipp: Wenn ein Filter scheinbar nicht greift, prüfen Sie zuerst die Restore-Logs. Dort finden Sie Hinweise auf unbekannte Filternamen, ungültige Datentypen, fehlerhaftes JSON oder eine nicht unterstützte Konfigurationsversion.
Sicherheit
- Es werden nur freigegebene Filternamen akzeptiert.
- Unterstützt werden nur primitive Datentypen wie
boolundstringsowie Arrays aus Strings. - Über die Konfigurationsdatei kann kein ausführbarer Code eingeschleust oder ausgeführt werden.