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> @
33 lines
1.3 KiB
Markdown
33 lines
1.3 KiB
Markdown
# 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.
|