gendesign/tradein-mvp/backend
lekss361 09698c5124 fix(tradein): PR #469 BLOCK — h.reviews_count + DSN psycopg strip
deep-code-reviewer caught 2 critical bugs that would cause silent prod regression:

1. 050_search_optimization.sql: h.ratings_count → h.reviews_count
   (alias house_ratings_count preserved for API contract)
   houses.ratings_count does not exist; matview CREATE would abort,
   and deploy-tradein.yml swallows the error (|| echo) — Celery task
   would then fail at runtime with "relation listings_search_mv does not exist".

2. refresh_search_matview.py: strip +psycopg dialect prefix from DSN
   tradein-mvp/docker-compose.prod.yml uses postgresql+psycopg:// (SQLAlchemy
   dialect form) for DATABASE_URL. libpq accepts only postgresql:// — without
   the strip, psycopg.connect() raises OperationalError on every Celery beat tick.

Refs PR #469 review (deep-code-reviewer, 2026-05-23).
2026-05-23 16:58:14 +03:00
..
app fix(tradein): PR #469 BLOCK — h.reviews_count + DSN psycopg strip 2026-05-23 16:58:14 +03:00
data/sql fix(tradein): PR #469 BLOCK — h.reviews_count + DSN psycopg strip 2026-05-23 16:58:14 +03:00
tests feat(tradein): cian_valuation.py — auth-required Calculator scraper + 24h cache (#465) 2026-05-23 13:43:34 +00:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
pyproject.toml feat(tradein): scrape_pipeline.py — Avito full orchestrator (search → houses → detail) (#451) 2026-05-23 12:55:13 +00:00