mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
85 lines
2.4 KiB
TypeScript
85 lines
2.4 KiB
TypeScript
import {drizzle} from "drizzle-orm/node-postgres";
|
|
|
|
import * as settings from "./schema/01_setting";
|
|
import * as user from "./schema/02_user";
|
|
import * as organisation from "./schema/03_organization";
|
|
import * as invitation from "./schema/04_member";
|
|
import * as member from "./schema/05_invitation";
|
|
import * as project from "./schema/06_project";
|
|
import * as agent from "./schema/08_agent";
|
|
import * as database from "./schema/07_database";
|
|
import * as notificationChannel from "./schema/09_notification-channel";
|
|
import * as organizationNotificationChannel from "./schema/09_notification-channel";
|
|
import * as alertPolicy from "./schema/10_alert-policy";
|
|
import * as notificationLog from "./schema/11_notification-log";
|
|
import * as storageChannel from "./schema/12_storage-channel";
|
|
import * as storagePolicy from "@/db/schema/13_storage-policy";
|
|
import * as backupStorage from "@/db/schema/14_storage-backup";
|
|
import * as healthcheckLog from "@/db/schema/15_healthcheck-log";
|
|
import * as apiKey from "@/db/schema/16_apikey";
|
|
import * as jobLog from "@/db/schema/17_job-log";
|
|
|
|
const log = logger.child({module: "db"});
|
|
|
|
|
|
import {Pool} from "pg";
|
|
|
|
// Do not delete
|
|
import dotenv from "dotenv";
|
|
import {migrate} from "drizzle-orm/node-postgres/migrator";
|
|
import {logger} from "@/lib/logger";
|
|
|
|
dotenv.config({
|
|
path: ".env",
|
|
});
|
|
|
|
const pool = new Pool({
|
|
connectionString: process.env.DATABASE_URL!,
|
|
});
|
|
|
|
export const schemas = {
|
|
...settings,
|
|
...user,
|
|
...organisation,
|
|
...invitation,
|
|
...member,
|
|
...project,
|
|
...agent,
|
|
...database,
|
|
...notificationChannel,
|
|
...organizationNotificationChannel,
|
|
...alertPolicy,
|
|
...notificationLog,
|
|
...storageChannel,
|
|
...storagePolicy,
|
|
...backupStorage,
|
|
...healthcheckLog,
|
|
...apiKey,
|
|
...jobLog
|
|
};
|
|
|
|
export const db = drizzle({
|
|
client: pool,
|
|
// logger: process.env.NODE_ENV != 'production',
|
|
schema: schemas,
|
|
|
|
});
|
|
|
|
export async function makeMigration() {
|
|
if (process.env.NODE_ENV != "development") {
|
|
const pool = new Pool({
|
|
connectionString: process.env.DATABASE_URL!,
|
|
});
|
|
|
|
const database = drizzle({client: pool});
|
|
|
|
log.info("Running migrations...");
|
|
try {
|
|
await migrate(database, {migrationsFolder: "./src/db/migrations"});
|
|
log.info("Migrations applied successfully.");
|
|
} catch (error) {
|
|
log.error({error: error}, "Error applying migrations:");
|
|
}
|
|
}
|
|
}
|