Initial commit - WhyRating Engine (Google Reviews Scraper)
This commit is contained in:
29
migrations/versions/015_add_business_info_columns.sql
Normal file
29
migrations/versions/015_add_business_info_columns.sql
Normal file
@@ -0,0 +1,29 @@
|
||||
-- Migration: Add dedicated columns for business info
|
||||
-- Purpose: Move business data from metadata JSONB to queryable/indexable columns
|
||||
-- Date: 2026-01-31
|
||||
|
||||
-- Add business info columns
|
||||
ALTER TABLE jobs ADD COLUMN IF NOT EXISTS business_name VARCHAR(500);
|
||||
ALTER TABLE jobs ADD COLUMN IF NOT EXISTS business_category VARCHAR(255);
|
||||
ALTER TABLE jobs ADD COLUMN IF NOT EXISTS business_address TEXT;
|
||||
ALTER TABLE jobs ADD COLUMN IF NOT EXISTS business_rating NUMERIC(3,2);
|
||||
|
||||
-- Add indexes for common queries
|
||||
CREATE INDEX IF NOT EXISTS idx_jobs_business_name ON jobs(business_name);
|
||||
CREATE INDEX IF NOT EXISTS idx_jobs_business_category ON jobs(business_category);
|
||||
CREATE INDEX IF NOT EXISTS idx_jobs_business_rating ON jobs(business_rating);
|
||||
|
||||
-- Migrate existing data from metadata JSONB to new columns
|
||||
UPDATE jobs SET
|
||||
business_name = metadata->>'business_name',
|
||||
business_address = metadata->>'business_address',
|
||||
business_rating = CASE
|
||||
WHEN metadata->>'rating_snapshot' IS NOT NULL
|
||||
THEN (metadata->>'rating_snapshot')::NUMERIC(3,2)
|
||||
ELSE NULL
|
||||
END
|
||||
WHERE metadata IS NOT NULL
|
||||
AND (business_name IS NULL OR business_address IS NULL OR business_rating IS NULL);
|
||||
|
||||
-- Clean up metadata: remove migrated fields (optional - keeps metadata for performance metrics only)
|
||||
-- Note: We keep the data in metadata for backward compatibility, but new code should use columns
|
||||
Reference in New Issue
Block a user