migrate_json_to_jsonb.sql 983 B

1234567891011121314151617181920212223
  1. -- ============================================================
  2. -- Migration: json → jsonb for existing databases
  3. -- Run this on existing PostgreSQL databases to apply Phase 1 changes
  4. -- Safe to run multiple times (uses IF NOT EXISTS / ALTER COLUMN IF)
  5. -- ============================================================
  6. BEGIN;
  7. -- Convert json columns to jsonb
  8. ALTER TABLE public.drugs ALTER COLUMN sections TYPE jsonb USING sections::jsonb;
  9. ALTER TABLE public.knowledge_points ALTER COLUMN related_drugs TYPE jsonb USING related_drugs::jsonb;
  10. ALTER TABLE public.questions ALTER COLUMN options TYPE jsonb USING options::jsonb;
  11. ALTER TABLE public.questions ALTER COLUMN knowledge_point_ids TYPE jsonb USING knowledge_point_ids::jsonb;
  12. -- Add GIN indexes for jsonb columns (performance)
  13. CREATE INDEX IF NOT EXISTS ix_drugs_sections_gin ON public.drugs USING gin (sections);
  14. CREATE INDEX IF NOT EXISTS ix_drugs_source_version ON public.drugs USING btree (source_version);
  15. COMMIT;