summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-02-04 05:07:10 +0100
committerRory& <root@rory.gay>2026-02-04 05:07:10 +0100
commit90291eadf4e334e719be94885bd24751e4f312d9 (patch)
tree765e5763db3ac39cfcb18019a0c967a7966e8376
parentMake builds for C# atomic, fix deps (diff)
downloadserver-ts-90291eadf4e334e719be94885bd24751e4f312d9.tar.xz
Fix disabling migrations on nix not wirking
-rw-r--r--nix/modules/default/default.nix4
-rw-r--r--nix/tests/test-bundle-starts.nix1
-rw-r--r--src/gateway/util/Utils.ts6
-rw-r--r--src/util/config/types/OffloadConfiguration.ts1
-rw-r--r--src/util/util/Database.ts36
5 files changed, 30 insertions, 18 deletions
diff --git a/nix/modules/default/default.nix b/nix/modules/default/default.nix

index ea541b97..f20edcb2 100644 --- a/nix/modules/default/default.nix +++ b/nix/modules/default/default.nix
@@ -272,7 +272,7 @@ in CONFIG_READONLY = 1; PORT = toString cfg.gatewayEndpoint.localPort; STORAGE_LOCATION = cfg.cdnPath; - APPLY_DB_MIGRATIONS = false; + APPLY_DB_MIGRATIONS = "false"; } ); serviceConfig = { @@ -295,7 +295,7 @@ in CONFIG_READONLY = 1; PORT = toString cfg.cdnEndpoint.localPort; STORAGE_LOCATION = cfg.cdnPath; - APPLY_DB_MIGRATIONS = false; + APPLY_DB_MIGRATIONS = "false"; } ); serviceConfig = { diff --git a/nix/tests/test-bundle-starts.nix b/nix/tests/test-bundle-starts.nix
index daebe5a1..a90fe37b 100644 --- a/nix/tests/test-bundle-starts.nix +++ b/nix/tests/test-bundle-starts.nix
@@ -58,7 +58,6 @@ in }; testScript = '' - machine.wait_for_unit("spacebar-apply-migrations") machine.wait_for_unit("spacebar-api") machine.wait_for_unit("spacebar-cdn") machine.wait_for_unit("spacebar-gateway") diff --git a/src/gateway/util/Utils.ts b/src/gateway/util/Utils.ts
index f60bfbf7..1757b845 100644 --- a/src/gateway/util/Utils.ts +++ b/src/gateway/util/Utils.ts
@@ -53,5 +53,9 @@ export async function cleanupOnStartup(): Promise<void> { // }, //); - await VoiceState.clear(); + try { + await VoiceState.clear(); + } catch (e) { + console.error("Error clearing voice states on startup:", e); + } } diff --git a/src/util/config/types/OffloadConfiguration.ts b/src/util/config/types/OffloadConfiguration.ts
index a84e8db8..b52919fb 100644 --- a/src/util/config/types/OffloadConfiguration.ts +++ b/src/util/config/types/OffloadConfiguration.ts
@@ -21,5 +21,6 @@ export class OffloadConfiguration { } export class GatewayOffloadConfiguration { + op12BaseUrl: string | null = null; op14BaseUrl: string | null = null; } diff --git a/src/util/util/Database.ts b/src/util/util/Database.ts
index 13bcf3cc..52168e9a 100644 --- a/src/util/util/Database.ts +++ b/src/util/util/Database.ts
@@ -20,7 +20,9 @@ import { config } from "dotenv"; import path from "path"; import { green, red, yellow } from "picocolors"; import { DataSource } from "typeorm"; +// noinspection ES6PreferShortImport import { ConfigEntity } from "../entities/Config"; +// noinspection ES6PreferShortImport import { Migration } from "../entities/Migration"; import fs from "fs"; @@ -41,6 +43,7 @@ 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"); +const applyMigrations = process.env.APPLY_DB_MIGRATIONS !== "false"; // For openapi.js... if (!isHeadlessProcess) { @@ -72,7 +75,7 @@ export const DataSourceOptions = isHeadlessProcess bigNumberStrings: false, supportBigNumbers: true, name: "default", - migrations: [path.join(__dirname, "..", "migration", DatabaseType, "*.js")], + migrations: applyMigrations ? [path.join(__dirname, "..", "migration", DatabaseType, "*.js")] : [], }); // Gets the existing database connection @@ -120,21 +123,26 @@ export async function initDatabase(): Promise<DataSource> { return false; } }; + if (applyMigrations) { + if (!(await dbExists())) { + console.log("[Database] This appears to be a fresh database. Running initial DDL."); + const qr = dbConnection.createQueryRunner(); + const initialPath = path.join(__dirname, "..", "migration", DatabaseType + "-initial.js"); + if (fs.existsSync(initialPath)) { + console.log("[Database] Found initial migration file, running it."); + await new (require(`../migration/${DatabaseType}-initial`).initial0)().up(qr); + } else console.log("[Database] No initial migration file found at '", initialPath, "', skipping."); + await qr.release(); + } - if (!(await dbExists())) { - console.log("[Database] This appears to be a fresh database. Running initial DDL."); - const qr = dbConnection.createQueryRunner(); - const initialPath = path.join(__dirname, "..", "migration", DatabaseType + "-initial.js"); - if (fs.existsSync(initialPath)) { - console.log("[Database] Found initial migration file, running it."); - await new (require(`../migration/${DatabaseType}-initial`).initial0)().up(qr); - } else console.log("[Database] No initial migration file found at '", initialPath, "', skipping."); - await qr.release(); - } - - if (process.env.APPLY_DB_MIGRATIONS !== "false") { - console.log("[Database] Applying missing migrations, if any."); + console.log("[Database] Applying missing migrations, if any.", process.env.APPLY_DB_MIGRATIONS); await dbConnection.runMigrations(); + } else { + console.log("[Database] Skipping migrations as per config."); + while (!(await dbExists())) { + console.log("[Database] Database does not exist, and we are not running migrations... Waiting 1 seconds..."); + await new Promise((r) => setTimeout(r, 5000)); + } } console.log(`[Database] ${green("Connected")}`);