From 10b7397dea3d73e1cd1114e6cd08c673a9b32bd6 Mon Sep 17 00:00:00 2001 From: Dmytro Stanchiev Date: Mon, 18 Aug 2025 17:06:11 -0400 Subject: [PATCH] drizzle setup --- drizzle.config.ts | 17 +++++++++++++++++ src/db.ts | 10 ++++++++++ src/db/schema.ts | 7 +++++++ 3 files changed, 34 insertions(+) create mode 100644 drizzle.config.ts create mode 100644 src/db.ts create mode 100644 src/db/schema.ts diff --git a/drizzle.config.ts b/drizzle.config.ts new file mode 100644 index 0000000..99a6eae --- /dev/null +++ b/drizzle.config.ts @@ -0,0 +1,17 @@ +"use server"; + +import { config } from "dotenv"; +import { type Config } from "drizzle-kit"; + +config({ path: ".env" }); + +export default { + out: "./drizzle", + schema: "./src/db/schema.ts", + dialect: "postgresql", + dbCredentials: { + url: process.env.DATABASE_URL!, + }, + verbose: true, + strict: true, +} satisfies Config; diff --git a/src/db.ts b/src/db.ts new file mode 100644 index 0000000..842cf89 --- /dev/null +++ b/src/db.ts @@ -0,0 +1,10 @@ +import "dotenv/config"; +import { drizzle } from "drizzle-orm/node-postgres"; + +// You can specify any property from the node-postgres connection options +const db = drizzle({ + connection: { + connectionString: process.env.DATABASE_URL!, + ssl: true, + }, +}); diff --git a/src/db/schema.ts b/src/db/schema.ts new file mode 100644 index 0000000..e66b799 --- /dev/null +++ b/src/db/schema.ts @@ -0,0 +1,7 @@ +import { integer, pgTable, varchar } from "drizzle-orm/pg-core"; + +export const usersTable = pgTable("users", { + id: integer().primaryKey().generatedAlwaysAsIdentity(), + name: varchar({ length: 255 }).notNull(), + email: varchar({ length: 255 }).notNull().unique(), +});