- migrations 21->23: dedicated `tickets` schema (tickets.inc / tickets.crq, raw-jsonb-first), geo_clusters + geo_locations gazetteers, geom-resolution trigger (feed -> location -> cluster -> none), reporting.fn_tickets_for_map - dashboard_api: GET /webhook/tickets (INC/CRQ GeoJSON for the FleetOps map) - tools/import_tickets.py: raw-first bucket ingest + cluster/location geocoding (LocationIQ/OpenCage, viewbox-bounded with a cluster-distance sanity guard) - docs/CONNECTIONS.md: geocoder env var names Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
23 lines
1.6 KiB
Markdown
23 lines
1.6 KiB
Markdown
# tools/ — manual & one-shot operator scripts
|
|
|
|
These are **not** part of the running stack (no service executes them). They are manual
|
|
utilities, mostly one-shot tasks that have already been run. Kept here for reference and
|
|
the occasional re-run, out of the production root.
|
|
|
|
They import `ts_shared_rev` (DB pool, API client, clean helpers) from the repo root, so run
|
|
them **as modules from the image root** (`/app`), not as bare files:
|
|
|
|
```bash
|
|
WK=$(docker ps --filter name=ingest_worker --format "{{.Names}}" | head -1)
|
|
docker exec -it "$WK" python -m tools.<name> [args]
|
|
```
|
|
|
|
| Script | What it does | One-shot? |
|
|
|---|---|---|
|
|
| `sync_driver_audit.py` | API↔DB driver/IMEI gap report + full device upsert across all sub-accounts | re-runnable audit |
|
|
| `audit_device_reconciliation.py` | Read-only: reconcile the vehicle CSV (`data/`) against `tracksolid.devices`; reports gaps + NULL fields | re-runnable audit |
|
|
| `import_drivers_csv.py` | Populate device names/plates from CSV (`--apply` to commit). The registry is already populated — kept for future bulk re-imports | one-shot (done) |
|
|
| `backfill_trips_enrichment.py` | One-shot backfill of historical `tracksolid.trips` (route_geom/addresses/plate) for rows predating migration 09 (`--apply` to commit) | one-shot (done) |
|
|
| `import_tickets.py` | Ingest INC/CRQ ticket snapshots (rustfs `tickets` bucket → `tracksolid.tickets`); `--from-bucket --apply`. `--geocode-clusters` seeds the cluster gazetteer that puts tickets on the FleetOps map. Needs migration 21 | re-runnable (per snapshot) |
|
|
|
|
`data/` holds the source CSVs the import/audit scripts read (default: `data/20260427_FSG_Vehicles_mitieng.csv`).
|