Spaces:
Running
Running
| -- One-time destructive migration from the old 16-dimensional mock vectors | |
| -- to the 300-dimensional Spanish FastText vectors. | |
| -- | |
| -- The tables contain derived search indexes. The main API remains the source | |
| -- of truth, so old incompatible vectors are intentionally discarded. | |
| -- Run as nlp_owner or the RDS administrator while the NLP API/jobs are paused. | |
| BEGIN; | |
| LOCK TABLE public.place_embeddings IN ACCESS EXCLUSIVE MODE; | |
| LOCK TABLE public.post_embeddings IN ACCESS EXCLUSIVE MODE; | |
| DO $$ | |
| DECLARE | |
| place_type TEXT; | |
| post_type TEXT; | |
| BEGIN | |
| SELECT format_type(attribute.atttypid, attribute.atttypmod) | |
| INTO place_type | |
| FROM pg_attribute attribute | |
| WHERE attribute.attrelid = 'public.place_embeddings'::regclass | |
| AND attribute.attname = 'embedding' | |
| AND NOT attribute.attisdropped; | |
| SELECT format_type(attribute.atttypid, attribute.atttypmod) | |
| INTO post_type | |
| FROM pg_attribute attribute | |
| WHERE attribute.attrelid = 'public.post_embeddings'::regclass | |
| AND attribute.attname = 'embedding' | |
| AND NOT attribute.attisdropped; | |
| IF place_type <> 'vector(16)' OR post_type <> 'vector(16)' THEN | |
| RAISE EXCEPTION | |
| 'Expected vector(16) columns, found place=% and post=%', | |
| place_type, | |
| post_type; | |
| END IF; | |
| END $$; | |
| DROP INDEX IF EXISTS public.place_embeddings_embedding_hnsw_idx; | |
| DROP INDEX IF EXISTS public.post_embeddings_embedding_hnsw_idx; | |
| TRUNCATE TABLE public.place_embeddings, public.post_embeddings; | |
| ALTER TABLE public.place_embeddings | |
| ALTER COLUMN embedding TYPE VECTOR(300); | |
| ALTER TABLE public.post_embeddings | |
| ALTER COLUMN embedding TYPE VECTOR(300); | |
| CREATE INDEX place_embeddings_embedding_hnsw_idx | |
| ON public.place_embeddings USING hnsw (embedding vector_cosine_ops); | |
| CREATE INDEX post_embeddings_embedding_hnsw_idx | |
| ON public.post_embeddings USING hnsw (embedding vector_cosine_ops); | |
| COMMIT; | |
| -- Immediately run sql/aws_pgvector_contract.sql after this migration so the | |
| -- match/upsert functions also declare VECTOR(300). | |