The place_cache table was missing google_place_id, google_data, and
google_fetched_at columns needed by the Google Places enrichment.
Adds ALTER TABLE migration in _get_db() to add columns if missing,
wrapped in try/except to handle existing columns gracefully.
Fixes HTTP 500 on /api/place/W/* endpoints.
Fills opening_hours, phone, and website gaps when OSM + Overture data
is incomplete. Only fires for business-class POIs (amenity, shop, tourism,
leisure, office, craft). Daily API call cap with SQLite tracking.
cache_put now preserves google columns across cache refreshes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>