From 62471598599637b7e410cb2e028389133728b54f Mon Sep 17 00:00:00 2001 From: Lacy Morrow Date: Mon, 2 Sep 2024 16:26:58 -0400 Subject: [PATCH] Add DB_PREFIX env variable --- .env.example | 3 +++ packages/db/src/schema.ts | 2 +- packages/db/src/table.ts | 8 ++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 packages/db/src/table.ts diff --git a/.env.example b/.env.example index ccb32a368..757de06b1 100644 --- a/.env.example +++ b/.env.example @@ -7,6 +7,9 @@ # The database URL is used to connect to your Supabase database. POSTGRES_URL="postgres://postgres.[USERNAME]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:6543/postgres?workaround=supabase-pooler.vercel" +# DB_PREFIX is used to prefix the database tables, e.g. "t3" will create tables like "t3_user" +DB_PREFIX="t3" + # You can generate the secret via 'openssl rand -base64 32' on Unix # @see https://next-auth.js.org/configuration/options#secret diff --git a/packages/db/src/schema.ts b/packages/db/src/schema.ts index 6bb273087..a2ec6c7ab 100644 --- a/packages/db/src/schema.ts +++ b/packages/db/src/schema.ts @@ -1,7 +1,6 @@ import { relations, sql } from "drizzle-orm"; import { integer, - pgTable, primaryKey, text, timestamp, @@ -10,6 +9,7 @@ import { } from "drizzle-orm/pg-core"; import { createInsertSchema } from "drizzle-zod"; import { z } from "zod"; +import { pgTable } from "./table"; export const Post = pgTable("post", { id: uuid("id").notNull().primaryKey().defaultRandom(), diff --git a/packages/db/src/table.ts b/packages/db/src/table.ts new file mode 100644 index 000000000..4f2289e08 --- /dev/null +++ b/packages/db/src/table.ts @@ -0,0 +1,8 @@ +import { pgTableCreator } from "drizzle-orm/pg-core"; + +export const pgTable = pgTableCreator((name: string) => { + if (process.env.DB_PREFIX) { + return `${process.env.DB_PREFIX}_${name}`; + } + return name; +}); \ No newline at end of file