41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
env_config에서 지정한 id 행을 그대로 복사해 새 행으로 INSERT.
|
|
→ 봇은 항상 id 최대(최신) 행만 쓰므로, 4번 내용이 곧 '최신 설정'이 됨.
|
|
|
|
사용: python copy_env_row_to_latest.py [소스_id]
|
|
소스_id 기본값: 4
|
|
"""
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
SCRIPT_DIR = Path(__file__).resolve().parent
|
|
sys.path.insert(0, str(SCRIPT_DIR))
|
|
|
|
from database import TradeDB, ENV_CONFIG_KEYS
|
|
|
|
def main():
|
|
source_id = int(sys.argv[1]) if len(sys.argv) > 1 else 4
|
|
db_path = SCRIPT_DIR / "quant_bot.db"
|
|
db = TradeDB(db_path=str(db_path))
|
|
|
|
row = db.conn.execute("SELECT * FROM env_config WHERE id = ?", (source_id,)).fetchone()
|
|
if not row:
|
|
print(f"id={source_id} 행이 없습니다.")
|
|
db.close()
|
|
return
|
|
|
|
# id=4 내용으로 새 스냅샷 생성 (created_at만 현재 시각)
|
|
import datetime
|
|
snapshot = {k: (row[k] if row[k] is not None else "") for k in ENV_CONFIG_KEYS if k in row.keys()}
|
|
env_id = db.insert_env_snapshot(snapshot)
|
|
db.close()
|
|
|
|
if env_id:
|
|
print(f"✅ id={source_id} 내용을 새 행(id={env_id})으로 복사했습니다. 이제 최신 설정입니다.")
|
|
else:
|
|
print("❌ INSERT 실패")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|