import sys sys.path.insert(0, "/home/hoon/kis_bot") from database import TradeDB from kis_trader.utils.env import invalidate_merged_env_cache db = TradeDB() try: snap = dict(db.get_merged_env_snapshot() or {}) changed = False print("=== 시세 공급자를 다시 키움으로 복구 ===") # 1. WS_PROVIDER: kis_with_validation 을 빈 값이나 kis_only 로 변경? # 기본은 KIS를 백그라운드용으로 쓰되 메인을 키움으로 하려면 WS_SUBSCRIBE_KIS_MINIMAL=True 로 둡니다. # 하지만 40개 한도 이슈가 있으므로, WS_PROVIDER="kis_only" (또는 "kiwoom" 등 기본값) 으로 돌립니다. # 실제로 KIS 시세를 끄려면 WS_SUBSCRIBE_KIS_MINIMAL=True 로 하면 후보 종목(20개)은 키움으로 구독합니다. if snap.get("WS_SUBSCRIBE_KIS_MINIMAL") is not True and str(snap.get("WS_SUBSCRIBE_KIS_MINIMAL")).lower() != 'true': print(f" WS_SUBSCRIBE_KIS_MINIMAL: {snap.get('WS_SUBSCRIBE_KIS_MINIMAL')} -> True (키움 메인 시세 사용)") snap["WS_SUBSCRIBE_KIS_MINIMAL"] = True changed = True # WS_PROVIDER 는 굳이 안 건드려도 되지만 확실하게 검증기(validation) 부하를 빼려면 빈 문자열 처리 if snap.get("WS_PROVIDER") == "kis_with_validation": print(f" WS_PROVIDER: {snap.get('WS_PROVIDER')} -> kis_only (키움 검증 로그 오프)") snap["WS_PROVIDER"] = "kis_only" changed = True if changed: db.insert_env_snapshot(snap) invalidate_merged_env_cache() print("\n✅ DB 업데이트 및 캐시 무효화 완료!") else: print("\n✅ 이미 설정되어 있습니다.") finally: db.close()