diff --git a/dev/optimize/cutover-runbook.md b/dev/optimize/cutover-runbook.md index 33edd743..bbf91b7b 100644 --- a/dev/optimize/cutover-runbook.md +++ b/dev/optimize/cutover-runbook.md @@ -53,7 +53,7 @@ Alle Commands laufen über Sail: `vendor/bin/sail artisan …` (bzw. ohne Sail - [ ] DB-Migrationen ausgeführt: `artisan migrate --force`. Vorher prüfen: keine Duplikate in `invoices.stripe_invoice_id` (Unique-Migration bricht sonst bewusst ab). -- [ ] Rollen/Permissions ausgerollt: `artisan db:seed --class=RolesAndPermissionsSeeder`. +- [ ] Rollen/Permissions ausgerollt: `artisan db:seed --class=RolesAndPermissionsSeeder`.ç - [ ] **Verbindungstest / Zählwerte:** `artisan legacy:import --source=all --dry-run` → erwartete Zeilenzahlen plausibel? @@ -100,9 +100,17 @@ nachziehen. Businessportal24 braucht hier nichts (Dump ist statisch). (`legacy_presseecho`; Businessportal24 nur falls sich dort doch etwas geändert hat) — die Legacy-Connections lesen die Kopien, nicht KAS direkt. - [ ] Neues System in Wartung: `artisan down`. -- [ ] **Delta-Import mit `--force`** (zieht auch geänderte Bestandsdatensätze nach; - uuid + slug von PMs bleiben stabil → öffentliche URLs brechen nicht): - `artisan legacy:import --source=presseecho --force` +- [ ] **Delta-Import mit `--force` + `--since`** (zieht auch geänderte + Bestandsdatensätze nach; uuid + slug von PMs bleiben stabil → öffentliche + URLs brechen nicht). `--since` auf das Datum des **Bulk-Imports minus + 1 Tag Sicherheitsmarge** setzen — dann scannt der Lauf nur die seither + angelegten/geänderten Legacy-Zeilen (Sekunden statt Volldurchlauf): + `artisan legacy:import --source=presseecho --force --since="2026-07-19"` + Die Importer setzen Timestamps inzwischen selbst korrekt (forceFill) — + `legacy:fix-timestamps` danach ist Absicherung, kein Muss mehr. + ⚠️ Für neue PM-Bilder vorher auch die **Medien** vom Alt-Server nachsyncen + (rsync-Delta nach `dev/migration/presseecho/…`), sonst werden ihre + Bildzeilen mangels Datei von `--prune-missing` entsorgt. - [ ] Medien-Delta: `artisan legacy:migrate-media --portal=presseecho --force` (`--force` erzwingt Neukopie + Varianten geänderter Bilder) → danach erneut `artisan press-releases:privatize-media --prune-missing`