From 777981eb25ab420f7f7962cc0a48cc360ea4c79f Mon Sep 17 00:00:00 2001 From: moon Date: Wed, 20 Mar 2024 14:07:24 -0700 Subject: [PATCH] Don't load sqlite-vss inside the adapter --- src/lib/adapters/sqlite.ts | 19 +++++++++++++------ src/test/createRuntime.ts | 3 +++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/lib/adapters/sqlite.ts b/src/lib/adapters/sqlite.ts index c630101..b01015f 100644 --- a/src/lib/adapters/sqlite.ts +++ b/src/lib/adapters/sqlite.ts @@ -11,21 +11,28 @@ import { } from "../types"; import { Database } from "better-sqlite3"; -import { load } from "./sqlite/sqlite_vss"; import { sqliteTables } from "./sqlite/sqliteTables"; import crypto from "crypto"; export class SqliteDatabaseAdapter extends DatabaseAdapter { - private db: Database; + db: Database; constructor(db: Database) { super(); this.db = db; - load(this.db); - // sqliteTables is a string of SQL commands - this.db.exec(sqliteTables); - this.db.exec("PRAGMA foreign_keys = OFF;"); + + // Check if the 'accounts' table exists as a representative table + const tableExists = this.db + .prepare( + "SELECT name FROM sqlite_master WHERE type='table' AND name='accounts'", + ) + .get(); + + if (!tableExists) { + // If the 'accounts' table doesn't exist, create all the tables + this.db.exec(sqliteTables); + } } async getAccountById(userId: UUID): Promise { diff --git a/src/test/createRuntime.ts b/src/test/createRuntime.ts index 7a1e938..6fdb651 100644 --- a/src/test/createRuntime.ts +++ b/src/test/createRuntime.ts @@ -13,6 +13,7 @@ import { TEST_PASSWORD, } from "./constants"; import { User } from "./types"; +import { load } from "../lib/adapters/sqlite/sqlite_vss"; export async function createRuntime({ env, @@ -37,6 +38,8 @@ export async function createRuntime({ // SQLite adapter adapter = new SqliteDatabaseAdapter(new Database(":memory:")); + // Load sqlite-vss + load((adapter as SqliteDatabaseAdapter).db); // Create a test user and session user = { id: zeroUuid,