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>
@
This commit is contained in:
Richard
2026-07-29 09:47:06 +02:00
parent e6bffdb70d
commit c5ff4e17aa
3 changed files with 114 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
-- IBKRTrader Alt-Tabellen entfernen, damit die EF-Migrationen sauber angewendet werden können.
--
-- Hintergrund: Frühere Läufe legten die Tabellen per Dapper (snake_case-Spalten) an. Das EF-Schema
-- nutzt dieselben Tabellennamen, aber PascalCase-Spalten deshalb müssen die alten Tabellen weg,
-- bevor `dotnet ef database update` sie neu (EF-konform) anlegt.
--
-- WARNUNG: Löscht alle Daten in diesen Tabellen. Nur ausführen, wenn kein produktiver Datenbestand
-- drin ist (bei einem frisch aufgesetzten IBKRTrader ist das der Fall).
--
-- Anwenden gegen die Ziel-DB (bergisnu_db0), z. B.:
-- mysql -h <host> -u <user> -p <db> < scripts/drop-app-tables.sql
SET FOREIGN_KEY_CHECKS = 0;
-- Core
DROP TABLE IF EXISTS `core_position`;
DROP TABLE IF EXISTS `core_trade_history`;
DROP TABLE IF EXISTS `core_budget`;
DROP TABLE IF EXISTS `core_worker_log`;
DROP TABLE IF EXISTS `core_settings`;
-- Core / IBKR-Marktdaten
DROP TABLE IF EXISTS `core_ibkr_market_data`;
DROP TABLE IF EXISTS `core_ibkr_external_identifiers`;
DROP TABLE IF EXISTS `core_ibkr_instruments`;
-- Modul CongressTrading
DROP TABLE IF EXISTS `ct_trade`;
DROP TABLE IF EXISTS `ct_congressMember`;
-- EF-Migrationshistorie (beide Contexts teilen sich diese Tabelle) zurücksetzen
DROP TABLE IF EXISTS `__EFMigrationsHistory`;
SET FOREIGN_KEY_CHECKS = 1;