/**
* @file Configuration for drizzle-kit (migrations, utils).
*
* NOTE: IGNORE WARNINGS
*
* - IGNORED Warning: '@neondatabase/serverless' can only connect to remote
* Neon/Vercel Postgres/Supabase instances through a websocket.
* - See https://github.com/drizzle-team/drizzle-orm/discussions/4723
* - One fix is to add package `pg` as a dev dependency.
* - Conclusion: Avoid doing that, if possible. Just ignore the warning.
*/
import { readFileSync, readdirSync, existsSync } from "node:fs";
import { dirname, join } from "node:path";
// import { fileURLToPath } from "node:url";
import dotenv from "dotenv";
import { defineConfig } from "drizzle-kit";
// const __filename = fileURLToPath(import.meta.url);
// const __dirname = dirname(__filename);
const devEnv = readFileSync(join(__dirname, "../../workers/server/.dev.vars"));
const env = dotenv.parse<{ MAIN_DB_URL?: string }>(devEnv);
export default defineConfig({
breakpoints: false,
verbose: true,
dbCredentials: {
url: env.MAIN_DB_URL!,
},
dialect: "postgresql",
migrations: {
prefix: "index",
schema: "public",
// table: "__drizzle_migrations", // Default: "__drizzle_migrations"
},
// These are relative to the current working directory, in ./workers/shared/
out: "../../db/main/migrations",
schema: "src/db/main/schema.ts",
schemaFilter: ["public"],
});