diff --git a/util/src/util/Database.ts b/util/src/util/Database.ts
index caf0880c..5f622805 100644
--- a/util/src/util/Database.ts
+++ b/util/src/util/Database.ts
@@ -1,26 +1,28 @@
import path from "path";
import "reflect-metadata";
-import { Connection, createConnection, ValueTransformer } from "typeorm";
+import { Connection, createConnection } from "typeorm";
import * as Models from "../entities";
-import { yellow, green} from "nanocolors";
+import { yellow, green } from "nanocolors";
// 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
var promise: Promise<any>;
var dbConnection: Connection | undefined;
+let dbConnectionString = process.env.DATABASE || path.join(process.cwd(), "database.db");
export function initDatabase() {
if (promise) return promise; // prevent initalizing multiple times
- console.log(`[Database] ${yellow("connecting ...")}`);
+ const type = dbConnectionString.includes(":") ? dbConnectionString.split(":")[0]?.replace("+srv", "") : "sqlite";
+ const isSqlite = type.includes("sqlite");
+
+ console.log(`[Database] ${yellow(`connecting to ${type} db`)}`);
// @ts-ignore
promise = createConnection({
- type: "sqlite",
- database: path.join(process.cwd(), "database.db"),
- // type: "postgres",
- // url: "postgres://fosscord:wb94SmuURM2Syv&@localhost/fosscord",
- //
+ type,
+ url: isSqlite ? undefined : dbConnectionString,
+ database: isSqlite ? dbConnectionString : undefined,
entities: Object.values(Models).filter((x) => x.constructor.name !== "Object"),
synchronize: true,
logging: false,
|