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> @
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:
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:
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_KEYoder Dateimaster.key) für die at-rest-Verschlüsselung künftiger Credentials.