From f47e323e71a505debb063f12e0fbd48c3c6688ee Mon Sep 17 00:00:00 2001 From: Antonio Piazza Date: Wed, 8 Jan 2025 21:03:17 +0100 Subject: [PATCH 1/4] Update index.ts Added Condional for Supabase to the initializeDatabase function to allow for ease of use for Supabase as well as keeping the postgres and sqlite funcitonality --- agent/src/index.ts | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/agent/src/index.ts b/agent/src/index.ts index 53058cf4ec..836d798450 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -1,5 +1,6 @@ import { PostgresDatabaseAdapter } from "@elizaos/adapter-postgres"; import { SqliteDatabaseAdapter } from "@elizaos/adapter-sqlite"; +import { SupabaseDatabaseAdapter } from "../adapters/supabase"; import { AutoClientInterface } from "@elizaos/client-auto"; import { DiscordClientInterface } from "@elizaos/client-discord"; import { FarcasterAgentClient } from "@elizaos/client-farcaster"; @@ -357,7 +358,24 @@ export function getTokenForProvider( } function initializeDatabase(dataDir: string) { - if (process.env.POSTGRES_URL) { + if (process.env.SUPABASE_URL && process.env.SUPABASE_ANON_KEY) { + elizaLogger.info("Initializing Supabase connection..."); + const db = new SupabaseDatabaseAdapter( + process.env.SUPABASE_URL, + process.env.SUPABASE_ANON_KEY + ); + + // Test the connection + db.init() + .then(() => { + elizaLogger.success("Successfully connected to Supabase database"); + }) + .catch((error) => { + elizaLogger.error("Failed to connect to Supabase:", error); + }); + + return db; + } else if (process.env.POSTGRES_URL) { elizaLogger.info("Initializing PostgreSQL connection..."); const db = new PostgresDatabaseAdapter({ connectionString: process.env.POSTGRES_URL, @@ -367,9 +385,7 @@ function initializeDatabase(dataDir: string) { // Test the connection db.init() .then(() => { - elizaLogger.success( - "Successfully connected to PostgreSQL database" - ); + elizaLogger.success("Successfully connected to PostgreSQL database"); }) .catch((error) => { elizaLogger.error("Failed to connect to PostgreSQL:", error); @@ -377,10 +393,19 @@ function initializeDatabase(dataDir: string) { return db; } else { - const filePath = - process.env.SQLITE_FILE ?? path.resolve(dataDir, "db.sqlite"); - // ":memory:"; + const filePath = process.env.SQLITE_FILE ?? path.resolve(dataDir, "db.sqlite"); + elizaLogger.info(`Initializing SQLite database at ${filePath}...`); const db = new SqliteDatabaseAdapter(new Database(filePath)); + + // Test the connection + db.init() + .then(() => { + elizaLogger.success("Successfully connected to SQLite database"); + }) + .catch((error) => { + elizaLogger.error("Failed to connect to SQLite:", error); + }); + return db; } } From 29e0e3e8cac8c48a94afd215fc1f939ed391f555 Mon Sep 17 00:00:00 2001 From: Antonio Piazza Date: Thu, 9 Jan 2025 16:48:03 +0100 Subject: [PATCH 2/4] Corrected supabase import Coreected the supabase import to match the proper format. --- agent/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/src/index.ts b/agent/src/index.ts index 5bce03f2a8..f2bb21bc0a 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -2,7 +2,7 @@ import { PGLiteDatabaseAdapter } from "@elizaos/adapter-pglite"; import { PostgresDatabaseAdapter } from "@elizaos/adapter-postgres"; import { RedisClient } from "@elizaos/adapter-redis"; import { SqliteDatabaseAdapter } from "@elizaos/adapter-sqlite"; -import { SupabaseDatabaseAdapter } from "../adapters/supabase"; +import { SupabaseDatabaseAdapter } from "@elizaos/adapter-supabase";"; import { AutoClientInterface } from "@elizaos/client-auto"; import { DiscordClientInterface } from "@elizaos/client-discord"; import { FarcasterAgentClient } from "@elizaos/client-farcaster"; From e3ada9d2bc4d3caac92a34314a4c7aec9ab4f3d9 Mon Sep 17 00:00:00 2001 From: Antonio Piazza Date: Thu, 9 Jan 2025 16:48:33 +0100 Subject: [PATCH 3/4] Update index.ts --- agent/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/src/index.ts b/agent/src/index.ts index f2bb21bc0a..ef0fbe5cca 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -2,7 +2,7 @@ import { PGLiteDatabaseAdapter } from "@elizaos/adapter-pglite"; import { PostgresDatabaseAdapter } from "@elizaos/adapter-postgres"; import { RedisClient } from "@elizaos/adapter-redis"; import { SqliteDatabaseAdapter } from "@elizaos/adapter-sqlite"; -import { SupabaseDatabaseAdapter } from "@elizaos/adapter-supabase";"; +import { SupabaseDatabaseAdapter } from "@elizaos/adapter-supabase"; import { AutoClientInterface } from "@elizaos/client-auto"; import { DiscordClientInterface } from "@elizaos/client-discord"; import { FarcasterAgentClient } from "@elizaos/client-farcaster"; From 942ffbbb8ac2128ddd443c2781fcbc0c99f716c2 Mon Sep 17 00:00:00 2001 From: Antonio Piazza Date: Thu, 9 Jan 2025 17:03:02 +0100 Subject: [PATCH 4/4] Added adapter-supabase to packag.json Added adapter-supabase to packag.json so that the adapter will not fail to load. --- agent/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/agent/package.json b/agent/package.json index b2950fd267..de5a83e2b3 100644 --- a/agent/package.json +++ b/agent/package.json @@ -18,6 +18,7 @@ "exec": "node --enable-source-maps --loader ts-node/esm src/index.ts" }, "dependencies": { + "@elizaos/adapter-supabase": "workspace:*", "@elizaos/adapter-postgres": "workspace:*", "@elizaos/adapter-redis": "workspace:*", "@elizaos/adapter-sqlite": "workspace:*",