summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-12-25 03:45:49 +0100
committerRory& <root@rory.gay>2025-12-25 03:45:49 +0100
commit0cf765fa9f50ff0583711d1d9e5f0574b5485216 (patch)
tree9ffd053f4ec9521e3c3de70dff64ba3a00149dab /src
parentAdd server name config option for use in client redirects (diff)
downloadserver-ts-0cf765fa9f50ff0583711d1d9e5f0574b5485216.tar.xz
Drop sqlite3 by default
Diffstat (limited to 'src')
-rw-r--r--src/util/util/Database.ts18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/util/util/Database.ts b/src/util/util/Database.ts

index 647fba01..7a0d084f 100644 --- a/src/util/util/Database.ts +++ b/src/util/util/Database.ts
@@ -39,6 +39,18 @@ const dbConnectionString = process.env.DATABASE || path.join(process.cwd(), "dat export const DatabaseType = dbConnectionString.includes("://") ? dbConnectionString.split(":")[0]?.replace("+srv", "") : "sqlite"; const isSqlite = DatabaseType.includes("sqlite"); +let hasWarnedSqlite = false; +if (isSqlite && !hasWarnedSqlite) { + hasWarnedSqlite = true; + console.log(`[Database] ${red(`You are running sqlite! Please keep in mind that we recommend setting up a dedicated database!`)}`); + try { + const _ = require("sqlite3"); + } catch (e) { + console.log(`[Database] ${red(`Failed to load sqlite3 package. Please install it with 'npm install --no-save sqlite3', or switch to a real database like Postgres.`)}`); + process.exit(1); + } +} + export const DataSourceOptions = new DataSource({ // eslint-disable-next-line @typescript-eslint/ban-ts-comment //@ts-ignore type 'string' is not 'sqlite' | 'postgres' | etc etc @@ -66,10 +78,6 @@ export function getDatabase(): DataSource | null { export async function initDatabase(): Promise<DataSource> { if (dbConnection) return dbConnection; - if (isSqlite) { - console.log(`[Database] ${red(`You are running sqlite! Please keep in mind that we recommend setting up a dedicated database!`)}`); - } - if (!process.env.DB_SYNC) { const supported = ["postgres", "sqlite"]; if (!supported.includes(DatabaseType)) { @@ -80,7 +88,7 @@ export async function initDatabase(): Promise<DataSource> { ` To ignore, set DB_SYNC=true in your env. https://docs.spacebar.chat/setup/server/configuration/env/`, ), ); - process.exit(); + process.exit(1); } }