From d375db8b6b03d58af5e712a2991a2a84ab79c7f7 Mon Sep 17 00:00:00 2001
From: Stan Hu <stanhu@gmail.com>
Date: Wed, 11 Oct 2023 07:06:46 -0700
Subject: [PATCH] Run pgvector-clean before pgvector-setup

For some reason the pgvector compiled for PostgreSQL 13 was
being installed in the PostgreSQL 14 library path:

`tmp/loadable_libraries.txt` failed with:

```
could not load library "$libdir/vector": ERROR:  incompatible library "/Users/psj/.asdf/installs/postgres/14.9/lib/vector.so": version mismatch
DETAIL:  Server is version 14, library is version 13.
In database: gitlabhq_development_embedding
In database: gitlabhq_test_embedding
```

To avoid this problem, run `make pgvector-clean` before the `make
pgvector-setup`.
---
 lib/gdk/postgresql_upgrader.rb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/gdk/postgresql_upgrader.rb b/lib/gdk/postgresql_upgrader.rb
index 725dd8df5e432..a70981149c2fe 100644
--- a/lib/gdk/postgresql_upgrader.rb
+++ b/lib/gdk/postgresql_upgrader.rb
@@ -107,8 +107,8 @@ def rename_current_data_dir_back
     def pgvector_setup
       return unless config.gitlab.rails.databases.embedding.enabled?
 
-      GDK::Output.info "Running 'make pgvector-setup'.."
-      run!('make pgvector-setup', config.gdk_root)
+      GDK::Output.info "Running 'make pgvector-clean pgvector-setup'.."
+      run!('make pgvector-clean pgvector-setup', config.gdk_root)
     end
 
     def pg_upgrade
-- 
GitLab