From 4794a1a09244e203b0066a3dca194f34cfcd3ac7 Mon Sep 17 00:00:00 2001
From: Mert <101130780+mertalev@users.noreply.github.com>
Date: Tue, 27 May 2025 12:36:30 -0400
Subject: [PATCH] fix(server): handle startup reindexing after failed model
 change (#18688)

drop constraint
---
 server/src/repositories/database.repository.ts | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/server/src/repositories/database.repository.ts b/server/src/repositories/database.repository.ts
index 48e530c807..1aff2d1a1e 100644
--- a/server/src/repositories/database.repository.ts
+++ b/server/src/repositories/database.repository.ts
@@ -247,7 +247,10 @@ export class DatabaseRepository {
       return;
     }
     const dimSize = await this.getDimensionSize(table);
-    await sql`DROP INDEX IF EXISTS ${sql.raw(indexName)}`.execute(this.db);
+    await this.db.schema.dropIndex(indexName).ifExists().execute();
+    if (table === 'smart_search') {
+      await this.db.schema.alterTable(table).dropConstraint('dim_size_constraint').ifExists().execute();
+    }
     await this.db.transaction().execute(async (tx) => {
       if (!rows.some((row) => row.columnName === 'embedding')) {
         this.logger.warn(`Column 'embedding' does not exist in table '${table}', truncating and adding column.`);