import "server-cli-only" import { dirname, resolve } from "path" import { fileURLToPath } from "url" import { USE_DEVELOPMENT_DATABASE_PLUGIN, type OberonDatabaseAdapter, type OberonPlugin, } from "@oberoncms/core" import { migrate } from "drizzle-orm/node-postgres/migrator" import { name, version } from "../package.json" with { type: "json" } import { getAuthAdapter } from "./db/auth-adapter" import { getClient } from "./db/client" import { getDatabaseAdapter } from "./db/database-adapter" const migrationsFolder = resolve(dirname(fileURLToPath(import.meta.url)), "../src/db/migrations") export const plugin: OberonPlugin = () => ({ name, version, disabled: USE_DEVELOPMENT_DATABASE_PLUGIN, bootstrap: async (next) => { await next() console.log(`Migrating database`) if (!getClient()) { console.log("Prepare: No Database Connection Configured") return } await migrate(getClient(), { migrationsFolder, }) console.log(`Database migration complete`) }, adapter: { ...getDatabaseAdapter(getClient), ...getAuthAdapter(getClient), } satisfies OberonDatabaseAdapter, })