feat: update Python processors and add utility scripts
- Update ASR, face, OCR, pose processors - Add release pre-flight check script - Add synonym generation, chunk processing scripts - Add face recognition, stamp search utilities
This commit is contained in:
75
scripts/sync_to_prod.sql
Normal file
75
scripts/sync_to_prod.sql
Normal file
@@ -0,0 +1,75 @@
|
||||
-- sync_to_prod.sql
|
||||
-- Syncs the latest identity changes from dev schema to public schema (Production/3002)
|
||||
|
||||
-- 1. Create 'identities' table in public if it doesn't exist (matches dev schema)
|
||||
CREATE TABLE IF NOT EXISTS public.identities (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL UNIQUE,
|
||||
embedding public.vector(768),
|
||||
metadata JSONB DEFAULT '{}'
|
||||
);
|
||||
|
||||
-- 2. Sync Identities (Audrey Hepburn, Cary Grant)
|
||||
INSERT INTO public.identities (id, name, metadata)
|
||||
SELECT id, name, metadata
|
||||
FROM dev.identities
|
||||
WHERE name IN ('Audrey Hepburn', 'Cary Grant')
|
||||
ON CONFLICT (id) DO NOTHING;
|
||||
|
||||
-- 3. Fix Bindings Table in public (ensure identity_id column exists and identity_bindings structure matches)
|
||||
-- Check if talent_id exists, rename it to identity_id if so
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'identity_bindings' AND column_name = 'talent_id') THEN
|
||||
ALTER TABLE public.identity_bindings RENAME COLUMN talent_id TO identity_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- 4. Sync Bindings (Mapping dev columns to public schema)
|
||||
-- public schema uses: identity_id, uuid, binding_type, binding_value
|
||||
INSERT INTO public.identity_bindings (identity_id, uuid, binding_type, binding_value)
|
||||
SELECT identity_id, '384b0ff44aaaa1f1', identity_type, identity_value
|
||||
FROM dev.identity_bindings
|
||||
WHERE identity_value IN ('Person_17', 'Person_4')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- 5. Sync Merge History
|
||||
INSERT INTO public.merge_history (merge_id, target_person_id, source_person_ids, original_target_stats, original_source_stats, merged_at)
|
||||
SELECT merge_id, target_person_id, source_person_ids, original_target_stats, original_source_stats, merged_at
|
||||
FROM dev.merge_history
|
||||
WHERE target_person_id IN ('Person_17', 'Person_4')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- 6. Perform Data Merges in Public (Simulating the actions taken in Dev)
|
||||
|
||||
-- A. Merge Person_25 -> Person_17 (Audrey Hepburn)
|
||||
-- Update Appearances
|
||||
UPDATE public.person_appearances
|
||||
SET person_id = 'Person_17'
|
||||
WHERE person_id = 'Person_25' AND video_uuid = '384b0ff44aaaa1f1';
|
||||
|
||||
-- Update Name and Count
|
||||
UPDATE public.person_identities
|
||||
SET name = 'Audrey Hepburn',
|
||||
appearance_count = (SELECT count(*) FROM public.person_appearances WHERE person_id = 'Person_17' AND video_uuid = '384b0ff44aaaa1f1')
|
||||
WHERE person_id = 'Person_17' AND video_uuid = '384b0ff44aaaa1f1';
|
||||
|
||||
-- Delete Source
|
||||
DELETE FROM public.person_identities
|
||||
WHERE person_id = 'Person_25' AND video_uuid = '384b0ff44aaaa1f1';
|
||||
|
||||
-- B. Merge Person_46, Person_70, Person_3 -> Person_4 (Cary Grant)
|
||||
-- Update Appearances
|
||||
UPDATE public.person_appearances
|
||||
SET person_id = 'Person_4'
|
||||
WHERE person_id IN ('Person_46', 'Person_70', 'Person_3') AND video_uuid = '384b0ff44aaaa1f1';
|
||||
|
||||
-- Update Name and Count
|
||||
UPDATE public.person_identities
|
||||
SET name = 'Cary Grant',
|
||||
appearance_count = (SELECT count(*) FROM public.person_appearances WHERE person_id = 'Person_4' AND video_uuid = '384b0ff44aaaa1f1')
|
||||
WHERE person_id = 'Person_4' AND video_uuid = '384b0ff44aaaa1f1';
|
||||
|
||||
-- Delete Sources
|
||||
DELETE FROM public.person_identities
|
||||
WHERE person_id IN ('Person_46', 'Person_70', 'Person_3') AND video_uuid = '384b0ff44aaaa1f1';
|
||||
Reference in New Issue
Block a user