feat(lotto): lotto_briefings.picks 4계층 객체로 마이그레이션 + tier_rationale 컬럼
This commit is contained in:
@@ -279,6 +279,25 @@ def init_db() -> None:
|
|||||||
""")
|
""")
|
||||||
conn.execute("CREATE INDEX IF NOT EXISTS idx_review_draw ON weekly_review(draw_no DESC)")
|
conn.execute("CREATE INDEX IF NOT EXISTS idx_review_draw ON weekly_review(draw_no DESC)")
|
||||||
|
|
||||||
|
# ── lotto_briefings.picks 4계층 마이그레이션 (1회 변환) ───────────────
|
||||||
|
# 기존: picks가 JSON 리스트 [{numbers,risk_tag,reason}]
|
||||||
|
# 신규: picks가 JSON 객체 {core:[...], bonus:[], extended:[], pool:[]}
|
||||||
|
rows = conn.execute("SELECT id, picks FROM lotto_briefings").fetchall()
|
||||||
|
for r in rows:
|
||||||
|
try:
|
||||||
|
p = json.loads(r["picks"])
|
||||||
|
if isinstance(p, list):
|
||||||
|
new_picks = {"core": p, "bonus": [], "extended": [], "pool": []}
|
||||||
|
conn.execute(
|
||||||
|
"UPDATE lotto_briefings SET picks=? WHERE id=?",
|
||||||
|
(json.dumps(new_picks, ensure_ascii=False), r["id"]),
|
||||||
|
)
|
||||||
|
except (json.JSONDecodeError, TypeError):
|
||||||
|
continue
|
||||||
|
|
||||||
|
_ensure_column(conn, "lotto_briefings", "tier_rationale",
|
||||||
|
"ALTER TABLE lotto_briefings ADD COLUMN tier_rationale TEXT NOT NULL DEFAULT '{}'")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user