Stabile Synchronisation für Module, Templates und Actions zwischen Dateisystem und Datenbank.
Diese Version ist bewusst strenger und bricht mit altem Legacy-Verhalten.
Synch ist eine Alternative zum Developer-AddOn, aber nicht kompatibel dazu. Das AddOn verfolgt einen anderen Ansatz:
- key-basierte Synchronisation statt ID-basierter Logik
- explizite Konfliktstrategie (bei bidirectional)
- hash-basierte Change-Detection statt nur Timestamp-Vergleich
- Sicherheits-Guards gegen unbeabsichtigte Massenlöschungen
Wichtig:
- Wer mit dem Developer-AddOn glücklich ist, muss nicht wechseln.
- Kein Mischbetrieb zwischen beiden AddOns.
- Richtungen: files_to_db, db_to_files, bidirectional
- Konfliktstrategie in bidirectional: newer_wins, filesystem_wins, database_wins
- Hash-basierte Change-Detection für DB und Dateisystem
- Schutz vor Massenlöschung: Kein DB-Cleanup bei leerem Dateisystem (Default)
- Dateinamen-Kompatibilität beim Lesen: key input.php oder input.php, key output.php oder output.php, key template.php oder template.php
- Alle schreibenden Aktionen in der Settings-Seite sind CSRF-geschützt.
- Auto-Sync ist standardmäßig deaktiviert.
- Empty-Filesystem-Cleanup ist standardmäßig deaktiviert.
Unter Synch > Einstellungen:
- Im Frontend synchronisieren
- Im Backend synchronisieren
- Synchronisations-Richtung
- Konfliktstrategie (bei bidirectional)
- Bestehende Items bei Key/Name-Konflikt aktualisieren
- DB-Cleanup bei leerem Dateisystem erlauben (gefährlich, daher default aus)
- AddOn installieren und aktivieren.
- Unter Synch > Einstellungen den Modus wählen:
- files_to_db für dateibasierte Entwicklung (empfohlen)
- db_to_files für backend-zentriertes Arbeiten
- bidirectional nur mit klarer Konfliktstrategie
- Auto-Sync zunächst deaktiviert lassen und mit manuellem Sync testen.
- Dateien unter
redaxo/data/addons/synchanlegen oder ändern. - Sync manuell starten oder Auto-Sync aktivieren.
- Ergebnis im Backend prüfen.
Hinweis: In files_to_db ist das Dateisystem Master. Backend-Änderungen können überschrieben werden.
Wichtig für die Erstinstallation:
- Wenn bereits Module/Templates/Actions in der Datenbank existieren, aber noch keine Synch-Verzeichnisse vorhanden sind, exportiert der erste Sync diese Inhalte einmalig ins Dateisystem (Initial-Bootstrap).
- Danach bleibt
files_to_dbwie gewohnt dateisystemführend.
- Neues Modul aus Datei anlegen:
- Ordner in
modules/<key>erstellen metadata.yml,input.phpoder<key> input.php,output.phpoder<key> output.phpanlegen- Sync ausführen
- Ordner in
- Bestehendes Modul aktualisieren:
- Dateiinhalt anpassen
- Sync ausführen
- Modul löschen:
- Im files_to_db-Modus im Dateisystem löschen
- Sync ausführen
- allow_empty_filesystem_cleanup nur aktivieren, wenn wirklich gewollt.
- Für produktive Systeme vor größeren Sync-Läufen Backup erstellen.
- Bei bidirectional Konfliktstrategie bewusst wählen und im Team dokumentieren.
# Vollständig
php redaxo/bin/console synch:sync
# Nur Module
php redaxo/bin/console synch:sync --modules-only
# Nur Templates
php redaxo/bin/console synch:sync --templates-only
# Nur Actions
php redaxo/bin/console synch:sync --actions-only
# Dry-Run
php redaxo/bin/console synch:sync --dry-runSchnell und fokussiert, je nach Änderungstyp:
php redaxo/bin/console synch:sync --modules-only
php redaxo/bin/console synch:sync --templates-only
php redaxo/bin/console synch:sync --actions-onlyVor dem Deploy prüfen und dann voll synchronisieren:
php redaxo/bin/console synch:sync --dry-run
php redaxo/bin/console synch:syncKonservativer Ablauf mit Verifikation:
- Backup erstellen
php redaxo/bin/console synch:sync --dry-runphp redaxo/bin/console synch:sync- Ergebnis im Backend prüfen
Hinweis:
- Für files_to_db ist die Console der empfohlene, reproduzierbare Betriebsweg.
- Bei bidirectional sollte die Konfliktstrategie vor dem Lauf explizit gesetzt sein.
redaxo/data/addons/synch/modules/<key>/redaxo/data/addons/synch/templates/<key>/redaxo/data/addons/synch/actions/<key>/
- In files_to_db ist das Dateisystem der Master.
- In db_to_files ist die Datenbank der Master.
- In bidirectional entscheidet die Konfliktstrategie.
- Legacy-Migrationspfad wurde entfernt.
Für reproduzierbare Tests siehe TESTMATRIX.md.
Siehe CHANGELOG.md.