docker-compose.yml
version: "3.9"
services:
bid-buddy-db:
image: postgres // 도커허브로 이동하라
restart: always
container_name: bid-buddy-db
ports:
- 5432:5432
****environment**:**
POSTGRES_PASSWORD: example
PGDATA: /data/postgres
****volumes**:**
- postgres:/data/postgres
****volumes**:**
postgres**:**
실행 명령어
$ docker compose up
https://orm.drizzle.team/docs/get-started-postgresql#postgresjs
npm i drizzle-orm postgres
npm i -D drizzle-kit
src > db > database.ts
import { env } from "@/env";
import * as schema from "./schema";
import { PostgresJsDatabase, drizzle } from "drizzle-orm/postgres-js";
import postgres from "postgres";
declare global {
// eslint-disable-next-line no-var -- only var works here
var database: PostgresJsDatabase<typeof schema> | undefined;
}
let database: PostgresJsDatabase<typeof schema>;
let pg: ReturnType<typeof postgres>;
if (env.NODE_ENV === "production") {
pg = postgres(env.DATABASE_URL);
database = drizzle(pg, { schema });
} else {
if (!global.database) {
pg = postgres(env.DATABASE_URL);
global.database = drizzle(pg, { schema });
}
database = global.database;
}
export { database, pg };
npm i @t3-oss/env-nextjs