@
R3-Vorbereitung: --db-version-Diagnose + EF-Strategie festgelegt - Program: --db-version gibt die DB-Serverversion aus (fuer EF-ServerVersion-Pin) - Bestaetigt: MariaDB 11.8.6 -> Pin wie PolytraderSharp (MariaDbServerVersion 11.8.6) - docs/ARCHITECTURE.md: R3-Strategie fixiert (EF-Migrationen extern, Verbindung aus appsettings.Local.json) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> @
This commit is contained in:
+25
@@ -32,6 +32,13 @@ internal static class Program
|
||||
return;
|
||||
}
|
||||
|
||||
// Diagnose: gibt die MySQL/MariaDB-Serverversion aus (für das EF-ServerVersion-Pinning).
|
||||
if (args.Length > 0 && string.Equals(args[0], "--db-version", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
RunDbVersion();
|
||||
return;
|
||||
}
|
||||
|
||||
ApplicationConfiguration.Initialize();
|
||||
|
||||
var modules = new List<IModule> { new CongressTradingModule() };
|
||||
@@ -153,6 +160,24 @@ internal static class Program
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>Diagnose: öffnet die DB (aus settings.json) und gibt die Serverversion aus. Kein UI.</summary>
|
||||
private static void RunDbVersion()
|
||||
{
|
||||
var settings = new SettingsService();
|
||||
settings.Load();
|
||||
var conn = settings.Settings.Database.BuildConnectionString();
|
||||
try
|
||||
{
|
||||
using var c = new MySqlConnector.MySqlConnection(conn);
|
||||
c.Open();
|
||||
Console.WriteLine($"ServerVersion: {c.ServerVersion}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"FEHLER: {ex.GetType().Name}: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Headless-Smoke-Test: baut den Host, registriert Views + Modul-UI und konstruiert jede
|
||||
/// registrierte View sowie den Launcher – ohne Message-Loop. Gibt die Fehleranzahl zurück.
|
||||
|
||||
+10
-3
@@ -88,9 +88,16 @@ IBKRTrader.App (WinExe, Root) – Generic Host + Shell (Launcher) + C
|
||||
- [ ] **Offen (R4/R5):** Worker von `WorkerEngine`/`IWorker` auf `IHostedService` umstellen (aktuell noch WorkerEngine)
|
||||
|
||||
### R3 – Persistenz auf EF Core
|
||||
- [ ] `AddCorePersistence` + `CoreDbContext` + Entities + EF-Repos (core_)
|
||||
- [ ] Modul-DbContext (ct_) im CongressTrading-Projekt
|
||||
- [ ] Dapper/manuelle Migrationen entfernen
|
||||
**Festgelegt:** EF-Migrationen **extern** (wie PolytraderSharp) – Schema per `dotnet ef database update`,
|
||||
App legt keine Tabellen zur Laufzeit an. Server: **MariaDB 11.8.6** (via `--db-version` bestätigt) →
|
||||
Pin `new MariaDbServerVersion(new Version(11, 8, 6))`. Verbindung aus `appsettings.Local.json`.
|
||||
- [x] `--db-version`-Diagnose (Serverversion für den EF-Pin)
|
||||
- [ ] `Configuration/DatabaseOptions` (aus appsettings.Local.json) + `DatabaseServerVersion`-Pin
|
||||
- [ ] `AddCorePersistence` + `CoreDbContext` + Entities + EF-Repos (core_position, core_trade_history, core_budget, core_worker_log, core_settings)
|
||||
- [ ] Consumer umstellen: `PortfolioService`, `BudgetService`, `TradeHistoryService`, `WorkerBase`-Log, IBKR
|
||||
- [ ] Modul-DbContext (ct_) im CongressTrading-Projekt + EF-Repo
|
||||
- [ ] EF-Migrationen erzeugen (`dotnet ef migrations add`); Dapper + manuelle Migrationen entfernen
|
||||
- Hinweis: nur build-verifizierbar (Unit-Tests laufen ohne DB); Schema-Anwendung erfolgt extern
|
||||
|
||||
### R4 – Trading-Kern einфügen
|
||||
- [ ] Risk/Execution/Portfolio/Broker-Seam nach Core/Trading (aus Phase 3 portiert)
|
||||
|
||||
Reference in New Issue
Block a user