All checks were successful
Deploy yourpart (blue-green) / deploy (push) Successful in 2m55s
32 lines
1.7 KiB
Markdown
32 lines
1.7 KiB
Markdown
# Datenbank-Migrationen (Falukant / YpDaemon)
|
|
|
|
Siehe auch **`docs/FALUKANT_DAEMON_HANDOFF.md`** (Abgleich mit Backend-Übergabe).
|
|
|
|
## `001_falukant_family_lovers.sql`
|
|
|
|
Voraussetzung für den **`FalukantFamilyWorker`** (Liebhaber, Ehezufriedenheit, Ansehen, Monatskosten, Kinder aus Liebschaften).
|
|
|
|
**Manuell ausführen** auf der Ziel-DB (nach Backup):
|
|
|
|
```bash
|
|
psql "$DATABASE_URL" -f migrations/001_falukant_family_lovers.sql
|
|
```
|
|
|
|
## `002_falukant_family_rename_legacy_columns.sql`
|
|
|
|
Nur nötig, wenn **`001`** bereits mit den **alten** Spaltennamen (`consecutive_underpayment_months`) eingespielt wurde.
|
|
|
|
**Backend (YourPart3):** Beim Anlegen einer `lover`-Beziehung `relationship_state` erzeugen; Ehezufriedenheit liegt auf **`relationship`** (married / engaged / wooing); Idempotenzfelder `last_daily_processed_at` / `last_monthly_processed_at` werden vom Daemon gesetzt.
|
|
|
|
Ohne passende Spalten (`last_daily_processed_at`) bleibt der Family-Worker inaktiv.
|
|
|
|
## `012_falukant_political_benefits_daemon.sql`
|
|
|
|
Tabellen **`political_benefit_last_tick`** und optional **`political_appointment`** für den **`PoliticsWorker`** / Modul `political_benefits.rs`:
|
|
|
|
- **`reputation_periodic`**: Ticks mit Persistenz (benötigt Backend-Seeds `falukant_predefine.political_office_benefit` mit JSON-Feldern `tr` oder `benefitType`, `gain`, `intervalDays`).
|
|
- **`free_lover_slots`**: Summe `count` im Liebschafts-Monatstick (Daemon), max. 5.
|
|
- **Ernennungen**: Daemon setzt nur `pending` → `expired`, wenn `expires_at` überschritten (Anlage durch Backend-API).
|
|
|
|
Die Join-Spalte auf `political_office_benefit` heißt im Repo **`political_office_type_id`** — falls das Sequelize-Modell abweicht, SQL in `src/worker/sql.rs` anpassen.
|