From b0c5b5997abbf1c27ad13cccefef1152dd49e8ea Mon Sep 17 00:00:00 2001 From: Rory& Date: Thu, 23 Oct 2025 14:19:06 +0200 Subject: [PATCH] Use EnvConfig for database --- src/database/Database.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/database/Database.ts b/src/database/Database.ts index d2cda1374..1d414992d 100644 --- a/src/database/Database.ts +++ b/src/database/Database.ts @@ -22,6 +22,7 @@ import { green, red, yellow } from "picocolors"; import { DataSource } from "typeorm"; import { ProcessLifecycle } from "../util/util/ProcessLifecycle"; import { PostgresDataSourceOptions } from "typeorm/driver/postgres/PostgresDataSourceOptions"; +import { EnvConfig } from "../util/config"; // UUID extension option is only supported with postgres // We want to generate all id's with Snowflakes that's why we have our own BaseEntity class @@ -58,8 +59,10 @@ export const DataSourceOptions = isHeadlessProcess charset: "utf8mb4", url: process.env.DATABASE, entities: [path.join(__dirname, "entities", "*.js")], - synchronize: !!process.env.DB_SYNC, - logging: !!process.env.DB_LOGGING, + synchronize: EnvConfig.database.unsafeSchemaSync, + logging: EnvConfig.logging.logDatabaseQueries, + // Figure out why this doesn't work someday. + // relationLoadStrategy: EnvConfig.database.disableJoins ? "query" : undefined, // mirrors DB_NO_JOINS bigNumberStrings: false, supportBigNumbers: true, name: "default", @@ -82,14 +85,14 @@ export function getDatabase(): DataSource | null { export async function initDatabase(): Promise { if (dbConnection) return dbConnection; - if (!process.env.DB_SYNC) { + if (!EnvConfig.database.unsafeSchemaSync) { const supported = ["postgres"]; if (!supported.includes(DatabaseType)) { console.log( "[Database]" + red( ` We don't have migrations for DB type '${DatabaseType}'` + - ` To ignore, set DB_SYNC=true in your env. https://docs.spacebar.chat/setup/server/configuration/env/`, + ` To ignore, set DB_UNSAFE_SCHEMA_SYNC=true in your env. https://docs.spacebar.chat/setup/server/configuration/env/`, ), ); process.exit(1);