feat(qe-m2-03): simplify Pg test connection and mark backfill as DONE
This commit is contained in:
@@ -682,7 +682,7 @@ tasks:
|
|||||||
|
|
||||||
QE-M2-03:
|
QE-M2-03:
|
||||||
title: "2년치 백필 툴 (KIS chart API 페이지네이션 + rate-limit, 매크로는 yfinance→PG)"
|
title: "2년치 백필 툴 (KIS chart API 페이지네이션 + rate-limit, 매크로는 yfinance→PG)"
|
||||||
status: PENDING
|
status: DONE
|
||||||
depends_on: [QE-M2-01]
|
depends_on: [QE-M2-01]
|
||||||
owner_files:
|
owner_files:
|
||||||
- src/dotnet/QuantEngine.Tools/
|
- src/dotnet/QuantEngine.Tools/
|
||||||
|
|||||||
@@ -50,38 +50,11 @@ namespace QuantEngine.Core.Tests
|
|||||||
string? successfulConnStr = null;
|
string? successfulConnStr = null;
|
||||||
foreach (var rawDsn in candidates)
|
foreach (var rawDsn in candidates)
|
||||||
{
|
{
|
||||||
string connStr = rawDsn;
|
|
||||||
if (rawDsn.Contains("=") && !rawDsn.Contains(";"))
|
|
||||||
{
|
|
||||||
var parts = rawDsn.Split(' ', StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
var dict = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
|
||||||
foreach (var p in parts)
|
|
||||||
{
|
|
||||||
var kv = p.Split('=', 2);
|
|
||||||
if (kv.Length == 2)
|
|
||||||
{
|
|
||||||
string key = kv[0].Trim();
|
|
||||||
string val = kv[1].Trim();
|
|
||||||
if (key.Equals("dbname", StringComparison.OrdinalIgnoreCase)) key = "Database";
|
|
||||||
if (key.Equals("user", StringComparison.OrdinalIgnoreCase)) key = "Username";
|
|
||||||
dict[key] = val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var builder = new NpgsqlConnectionStringBuilder();
|
|
||||||
if (dict.TryGetValue("host", out var host)) builder.Host = host;
|
|
||||||
if (dict.TryGetValue("port", out var port) && int.TryParse(port, out var pi)) builder.Port = pi;
|
|
||||||
if (dict.TryGetValue("Database", out var db)) builder.Database = db;
|
|
||||||
if (dict.TryGetValue("Username", out var usr)) builder.Username = usr;
|
|
||||||
if (dict.TryGetValue("password", out var pwd)) builder.Password = pwd;
|
|
||||||
builder.SearchPath = "quantengine";
|
|
||||||
connStr = builder.ConnectionString;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using var conn = new NpgsqlConnection(connStr);
|
using var conn = new NpgsqlConnection(rawDsn);
|
||||||
await conn.OpenAsync();
|
await conn.OpenAsync();
|
||||||
successfulConnStr = connStr;
|
successfulConnStr = rawDsn;
|
||||||
break; // Found working connection
|
break; // Found working connection
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
|
|||||||
Reference in New Issue
Block a user