metalfrom.eu/apps/api/migrations
Nicolas Fryder 1ae5aa4b57 feat(geocoder): seuil de confiance strict, dedup, purge ancien pipeline
Étape 0 de la refonte pipeline crawl/géocodage.

Auto-requeue du géocodage
- migration 013: trigger trg_bands_geocode_dirty (AFTER UPDATE OF location_text
  ON bands) supprime les band_locations d'un band dès que sa localisation
  change réellement (IS DISTINCT FROM) — plus de points fantômes après un
  déménagement détecté par le crawler incrémental.
- enqueue.py: en plus du déclenchement manuel, un scan automatique tourne
  toutes les ENQUEUE_AUTO_INTERVAL_MIN minutes (défaut 60) et rattrape les
  bands rendus "dirty" par le trigger (idempotent, ON CONFLICT DO NOTHING —
  pas de canal de notification supplémentaire nécessaire). Chaque exécution
  (manuelle ou auto) crée une ligne crawl_run + logs rattachés, en miroir de
  crawler/src/db.py, pour apparaître dans l'activité admin à venir.

Crawl complet en calcul glissant
- remplace CRAWLER_SCHED_FULL_DAY (jour fixe du mois) par
  CRAWLER_FULL_CRAWL_INTERVAL_DAYS (défaut 60) basé sur le checkpoint
  last_full_crawl_at — robuste au calendrier et aux redémarrages (vérifié
  aussi au démarrage, pas seulement le tick quotidien 03:00 UTC).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 21:07:16 +02:00
..
001_initial_schema.sql feat(db): système de migrations SQL + refonte schéma 2026-06-27 15:09:35 +02:00
002_add_missing_columns.sql feat(db): système de migrations SQL + refonte schéma 2026-06-27 15:09:35 +02:00
003_geocode_tables.sql feat(db): système de migrations SQL + refonte schéma 2026-06-27 15:09:35 +02:00
004_crawl_tracking.sql feat(db): système de migrations SQL + refonte schéma 2026-06-27 15:09:35 +02:00
005_fix_checkpoints_and_data.sql fix(crawler): FlareSolverr persistent sessions + DB data field + scraper schema 2026-06-30 20:29:33 +02:00
006_admin_dashboard.sql feat(admin): dashboard admin complet (auth forte, API, monitoring) 2026-06-30 22:15:13 +02:00
007_locked_fields_and_jobs.sql feat: locked_fields, genres splittés, conflits, géocodage, jobs dashboard 2026-06-30 23:06:20 +02:00
008_band_locations.sql fix(geocoder): band_locations.ma_id en BIGINT — débloque 62k bands 2026-07-02 19:47:30 +02:00
009_band_locations_bigint.sql fix(geocoder): band_locations.ma_id en BIGINT — débloque 62k bands 2026-07-02 19:47:30 +02:00
010_band_locations_geom.sql feat(map): carte multi-localisations — un point par step géocodé 2026-07-02 19:52:40 +02:00
011_llm_cache_linkage.sql feat(admin): observabilité & provenance du géocodage + fix parser 2026-07-02 20:10:18 +02:00
012_geocode_confidence.sql feat(geocoder): seuil de confiance strict, dedup, purge ancien pipeline 2026-07-02 20:32:16 +02:00
013_geocode_dirty_trigger.sql feat(geocoder): seuil de confiance strict, dedup, purge ancien pipeline 2026-07-02 21:07:16 +02:00