#!/usr/bin/env python3 """WS_PRICE_MAX_AGE_SEC 를 0(마지막 RAM)으로 맞춤. 스키마 확인 후 1회만.""" from __future__ import annotations import os import sys sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) from database import TradeDB from kis_trader.utils.env import get_env_from_db, invalidate_merged_env_cache def main() -> None: db = TradeDB() try: cols = [ dict(r)["Field"] for r in db.conn.execute("SHOW COLUMNS FROM env_config").fetchall() ] print("env_config has WS_PRICE_MAX_AGE_SEC:", "WS_PRICE_MAX_AGE_SEC" in cols) ext_cols = [ dict(r)["Field"] for r in db.conn.execute("SHOW COLUMNS FROM env_config_ext").fetchall() ] print("env_config_ext cols:", ext_cols) before = get_env_from_db("WS_PRICE_MAX_AGE_SEC", "") print("before get_env_from_db:", repr(before)) if "WS_PRICE_MAX_AGE_SEC" in cols: db.conn.execute( "UPDATE env_config SET WS_PRICE_MAX_AGE_SEC=%s", ("0",), ) print("updated env_config.WS_PRICE_MAX_AGE_SEC=0") db.conn.execute( "INSERT INTO env_config_ext (env_key, env_value, updated_at) " "VALUES (%s, %s, NOW()) " "ON DUPLICATE KEY UPDATE env_value=VALUES(env_value), " "updated_at=VALUES(updated_at)", ("WS_PRICE_MAX_AGE_SEC", "0"), ) print("upsert env_config_ext WS_PRICE_MAX_AGE_SEC=0") invalidate_merged_env_cache() after = get_env_from_db("WS_PRICE_MAX_AGE_SEC", "") print("after get_env_from_db:", repr(after)) finally: db.close() if __name__ == "__main__": main()