| const { Workspace } = require("../../models/workspace"); |
| const { Document } = require("../../models/documents"); |
| const { DocumentVectors } = require("../../models/vectors"); |
| const { EventLogs } = require("../../models/eventLogs"); |
| const { purgeEntireVectorCache } = require("../files"); |
| const { getVectorDbClass } = require("../helpers"); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| async function resetAllVectorStores({ vectorDbKey }) { |
| try { |
| const workspaces = await Workspace.where(); |
| purgeEntireVectorCache(); |
| await DocumentVectors.delete(); |
| await Document.delete(); |
| await EventLogs.logEvent("workspace_vectors_reset", { |
| reason: "System vector configuration changed", |
| }); |
|
|
| console.log( |
| "Resetting anythingllm managed vector namespaces for", |
| vectorDbKey |
| ); |
| const VectorDb = getVectorDbClass(vectorDbKey); |
|
|
| if (vectorDbKey === "pgvector") { |
| |
| |
| |
| |
| |
| |
| await VectorDb.reset(); |
| } else { |
| for (const workspace of workspaces) { |
| try { |
| await VectorDb["delete-namespace"]({ namespace: workspace.slug }); |
| } catch (e) { |
| console.error(e.message); |
| } |
| } |
| } |
|
|
| return true; |
| } catch (error) { |
| console.error("Failed to reset vector stores:", error); |
| return false; |
| } |
| } |
|
|
| module.exports = { resetAllVectorStores }; |
|
|