feat: AR-House initial commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
"""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())
|
||||
Reference in New Issue
Block a user