Files
kis_trader/scratch/cleanup_empty_auth.py

42 lines
1.4 KiB
Python

import sys, os
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
from database import TradeDB
db = TradeDB()
try:
# 빈 행 삭제 전 확인
empty = db.conn.execute("""
SELECT id, created_at FROM env_auth_config
WHERE KIS_APP_KEY_REAL IS NULL
AND KIS_APP_KEY IS NULL
AND KIWOOM_APP_KEY_REAL IS NULL
AND LS_APP_KEY_REAL IS NULL
ORDER BY id
""").fetchall()
print(f"[삭제 대상 빈 행] {len(empty)}개:")
for r in empty:
print(f" id={dict(r)['id']} created_at={dict(r)['created_at']}")
# 삭제
ids = [dict(r)['id'] for r in empty]
if ids:
placeholders = ','.join(['%s'] * len(ids))
db.conn.execute(f"DELETE FROM env_auth_config WHERE id IN ({placeholders})", ids)
db.conn.commit()
print(f"\n{len(ids)}개 빈 행 삭제 완료: {ids}")
# 최종 상태 확인
print("\n[삭제 후 최근 5행]")
rows = db.conn.execute("""
SELECT id, created_at, KIS_APP_KEY_REAL, KIS_APP_KEY_OB_REAL
FROM env_auth_config ORDER BY id DESC LIMIT 5
""").fetchall()
for r in rows:
d = dict(r)
for k in ['KIS_APP_KEY_REAL','KIS_APP_KEY_OB_REAL']:
v = d.get(k)
d[k] = (v[:6]+'...') if v else 'NULL'
print(f" id={d['id']} created_at={d['created_at']} KEY_REAL={d['KIS_APP_KEY_REAL']} OB_REAL={d['KIS_APP_KEY_OB_REAL']}")
finally:
db.close()