구조적인 부분 수정

This commit is contained in:
2026-02-24 11:38:35 +09:00
parent 6d9c9cb010
commit 883f87753c
15 changed files with 789 additions and 672 deletions

View File

@@ -24,9 +24,23 @@ from app.core.market_schedule import is_market_open
from sqlalchemy import text
# 로깅 설정
import os
import logging.handlers
_log_level = getattr(logging, settings.LOG_LEVEL.upper(), logging.INFO)
_log_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
_log_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "logs")
os.makedirs(_log_dir, exist_ok=True)
_log_file = os.path.join(_log_dir, "backend.log")
logging.basicConfig(
level=getattr(logging, settings.LOG_LEVEL.upper(), logging.INFO),
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
level=_log_level,
format=_log_format,
handlers=[
logging.StreamHandler(),
logging.handlers.RotatingFileHandler(
_log_file, maxBytes=10 * 1024 * 1024, backupCount=5, encoding="utf-8"
),
]
)
logger = logging.getLogger(__name__)
@@ -191,6 +205,20 @@ async def lifespan(app: FastAPI):
ADD COLUMN IF NOT EXISTS ml_confidence NUMERIC(5, 4),
ADD COLUMN IF NOT EXISTS ml_signal VARCHAR(10);
"""))
# UPSERT를 위한 unique constraint — init-db.sql에 없을 경우 자동 생성
await conn.execute(text("""
DO $$ BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'uq_stock_analysis_code_date'
AND conrelid = 'stock_analysis'::regclass
) THEN
ALTER TABLE stock_analysis
ADD CONSTRAINT uq_stock_analysis_code_date
UNIQUE (stock_code, analysis_date);
END IF;
END $$;
"""))
# active_trades에 분할 청산 컬럼 추가 (CLAUDE.md 섹션 7.3)
await conn.execute(text("""
ALTER TABLE active_trades