Files
IBKRTrader/scripts/README.md
Richard c5ff4e17aa @
DB-Provisioning-Skripte (Drop-Alt-Tabellen + EF-Migrationen anwenden)

- scripts/drop-app-tables.sql: entfernt alte (snake_case) core_/ct_-Tabellen + EF-Historie,
  damit die EF-Migrationen kollisionsfrei angewendet werden koennen
- scripts/provision-db.ps1: liest Connection aus appsettings.Local.json, setzt IBKRTRADER_MYSQL,
  wendet CoreDbContext- + CongressTradingDbContext-Migrationen an (dotnet ef database update)
- scripts/README.md: Ablauf + Sicherheitshinweise (Passwort rotieren, Master-Key)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-07-29 09:47:06 +02:00

33 lines
1.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IBKRTrader DB-Provisioning
Die App legt das DB-Schema **nicht** zur Laufzeit an (EF-Migrationen werden extern angewendet).
Einmalig beim Aufsetzen einer DB:
## 1. (Nur falls nötig) Alt-Tabellen entfernen
Wenn frühere Läufe bereits `core_*`/`ct_*`-Tabellen im alten (snake_case) Schema angelegt haben,
kollidieren sie mit dem EF-Schema. Dann einmalig ausführen:
```bash
mysql -h <host> -u <user> -p <db> < scripts/drop-app-tables.sql
```
> ⚠️ Löscht Daten in diesen Tabellen. Bei frischem Aufsetzen unkritisch.
## 2. Migrationen anwenden
Liest den Connection-String aus `appsettings.Local.json` und wendet beide Contexts an:
```bash
powershell -ExecutionPolicy Bypass -File scripts/provision-db.ps1
```
Voraussetzung: `dotnet-ef` (`dotnet tool install --global dotnet-ef`).
Angelegt werden: `core_position`, `core_trade_history`, `core_budget`, `core_worker_log`,
`core_settings`, `core_ibkr_instruments`, `core_ibkr_market_data`, `core_ibkr_external_identifiers`,
`ct_congressMember`, `ct_trade` sowie `__EFMigrationsHistory`.
## Sicherheit
- **DB-Passwort rotieren** das ursprüngliche liegt in der Git-Historie (Commit `ebeb035`).
- Optional Master-Key setzen (`IBKRTRADER_MASTER_KEY` oder Datei `master.key`) für die
at-rest-Verschlüsselung künftiger Credentials.