Produktiv- und Testtabellen per Prefix trennen

This commit is contained in:
2026-08-22 15:29:52 +02:00
parent a31a235422
commit 213dd10dbd
11 changed files with 490 additions and 24 deletions
+8 -1
View File
@@ -36,6 +36,11 @@ Wichtige Punkte:
- `--single-transaction` sorgt für einen konsistenten Snapshot ohne
Tabellen zu sperren (InnoDB, wie hier durchgängig verwendet).
- Da `test_` und `prod_` in derselben physischen Datenbank liegen, enthält
der vollständige Dump beide logisch getrennten Schemas. Beim Restore darf
nicht nur ein einzelner Prefix zurückgespielt werden, ohne Abhängigkeiten
und den jeweiligen Stand von `test_schema_migrations` beziehungsweise
`prod_schema_migrations` zu prüfen.
- Der Backup-Ordner muss **außerhalb** des über HTTP erreichbaren Webroots
liegen, sonst wären Dumps öffentlich abrufbar.
- Zusätzlich zu lokalen Backups auf dem Webspace mindestens eine Kopie an
@@ -55,7 +60,9 @@ gunzip -c kaffeeliste_20260715_030000.sql.gz | mysql -h "$DB_HOST" -u "$DB_USER"
Danach `php scripts/migrate.php` laufen lassen, falls das Backup älter als
die zuletzt eingespielten Migrationen ist (das Skript ist idempotent und
wendet nur fehlende Migrationen an).
wendet nur fehlende Migrationen im konfigurierten `DB_TABLE_PREFIX` an).
Den Lauf daher mit der Konfiguration jeder wiederhergestellten Umgebung
separat ausführen.
**Restore-Test:** Mindestens einmal pro Quartal einen echten Restore gegen
eine separate Test-Datenbank durchführen und die App dagegen starten