Skip to content

Commit 7070df9

Browse files
DonatienBailleactionbrk
authored andcommitted
fix: Update FTS5 index rebuilding logic and improve logging
1 parent 578ae8b commit 7070df9

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

src/database/bee-database.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,9 @@ export async function optimizeDatabase(guildId: string): Promise<void> {
352352

353353
// Optimize FTS5 tables
354354
try {
355+
logger.info("Optimizing FTS5 index for messageindex...");
355356
db.exec("INSERT INTO messageindex(messageindex) VALUES('optimize');");
357+
logger.info("FTS5 index for messageindex optimized successfully.");
356358
} catch (error) {
357359
logger.error("Failed to optimize FTS5 table 'messageindex':", error);
358360
}
@@ -361,16 +363,15 @@ export async function optimizeDatabase(guildId: string): Promise<void> {
361363
export async function rebuildIndexes(guildId: string): Promise<void> {
362364
const db = getDatabaseForGuild(guildId);
363365

364-
// Drop and recreate the FTS5 index
365-
// TODO: Should we use https://sqlite.org/fts5.html#the_rebuild_command instead?
366-
db.exec(`
367-
DROP TABLE IF EXISTS messageindex;
368-
CREATE VIRTUAL TABLE messageindex USING fts5(content, content="message", tokenize="trigram");
369-
INSERT INTO messageindex(rowid, content)
370-
SELECT rowid, content FROM message WHERE content IS NOT NULL;
371-
`);
372-
373-
await optimizeDatabase(guildId);
366+
// Rebuild the FTS5 index
367+
try {
368+
logger.info("Rebuilding FTS5 index for messageindex...");
369+
db.exec("INSERT INTO messageindex(messageindex) VALUES('rebuild');");
370+
logger.info("FTS5 index for messageindex rebuilt successfully.");
371+
await optimizeDatabase(guildId);
372+
} catch (error) {
373+
logger.error("Failed to rebuild FTS5 table 'messageindex':", error);
374+
}
374375
}
375376

376377
export function updateMessageDay(guildId: string, message: Message, isDelete: boolean = false): void {

0 commit comments

Comments
 (0)