Files
2026-07-03 12:24:58 -04:00

50 lines
1.3 KiB
Python

"""Idempotent init script para data/deals.db.
Crea schema + indexes. Safe para correr multiples veces (CREATE TABLE IF NOT EXISTS).
Usage:
python scripts/init_deals_db.py
"""
from __future__ import annotations
import io, sys
from pathlib import Path
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
ROOT = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(ROOT))
from deals_db import init_db, _DB_PATH, _get_conn # noqa: E402
def main() -> int:
print(f"Initializing deals DB at: {_DB_PATH}")
init_db()
conn = _get_conn()
# Verify all tables created
tables = [r[0] for r in conn.execute(
"SELECT name FROM sqlite_master WHERE type='table' ORDER BY name"
).fetchall()]
print(f"Tables present: {tables}")
# Verify indexes
indexes = [r[0] for r in conn.execute(
"SELECT name FROM sqlite_master WHERE type='index' AND name NOT LIKE 'sqlite_%' ORDER BY name"
).fetchall()]
print(f"Indexes present: {indexes}")
# Sanity check
expected_tables = {"deals", "scraper_runs", "firecrawl_usage"}
missing = expected_tables - set(tables)
if missing:
print(f"ERROR: missing tables {missing}")
return 1
print("OK — deals.db initialized successfully")
return 0
if __name__ == "__main__":
sys.exit(main())