snipe/app/db/migrations
pyr0ball 59f728cba0 fix: make ALTER TABLE migrations idempotent with IF NOT EXISTS
SQLite's executescript() auto-commits each DDL statement, so a partial
migration failure leaves columns in the DB without marking the migration
done. On the next startup the runner retries and hits duplicate column errors.

Use ADD COLUMN IF NOT EXISTS (SQLite 3.35+, shipped in Python 3.11+)
so migrations 004 and 005 are safe to re-run in any partial state.
2026-04-05 22:18:25 -07:00
..
001_init.sql feat: add data models, migrations, and store 2026-03-25 13:08:55 -07:00
002_add_listing_format.sql feat(snipe): auction support + easter eggs (Konami, The Steal, de-emphasis) 2026-03-25 14:27:02 -07:00
003_nullable_account_age.sql fix: account_age_days=None for scraper tier, stop false new_account flags 2026-03-25 20:36:43 -07:00
004_staging_tracking.sql fix: make ALTER TABLE migrations idempotent with IF NOT EXISTS 2026-04-05 22:18:25 -07:00
005_listing_category.sql fix: make ALTER TABLE migrations idempotent with IF NOT EXISTS 2026-04-05 22:18:25 -07:00
006_scammer_blocklist.sql feat: scammer blocklist, search/listing UI overhaul, tier refactor 2026-04-03 19:08:54 -07:00
007_background_tasks.sql fix(tasks): address code review — cloud DB path, migration number, connection handling, enqueue site 2026-03-31 17:00:01 -07:00