diff --git a/apps/backend/src/index.ts b/apps/backend/src/index.ts index 421ed29..b75b980 100644 --- a/apps/backend/src/index.ts +++ b/apps/backend/src/index.ts @@ -3,7 +3,7 @@ const dotenv = dotenvLoad(); import { Elysia } from "elysia"; import { swagger } from "@elysiajs/swagger"; -import { db } from "@minikura/db"; +import { prisma } from "@minikura/db"; const app = new Elysia() .use(swagger()) @@ -13,7 +13,7 @@ const app = new Elysia() .get("/hello", "Do you miss me?") .listen(3000, async () => { console.log("Server is running on port 3000"); - const result = await db.query.server.findMany(); + const result = await prisma.server.findMany(); console.log(result); }); diff --git a/bun.lockb b/bun.lockb index 6047e7f..ce49c95 100644 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 08e5f41..c390153 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,9 @@ "lint:fix": "biome lint --apply .", "format": "biome format .", "format:fix": "biome format --write .", - "studio": "drizzle-kit studio", - "push": "drizzle-kit push" + "db:generate": "bun --filter @minikura/db generate", + "db:studio": "bun --filter @minikura/db studio", + "db:push": "bun --filter @minikura/db push" }, "devDependencies": { "@biomejs/biome": "^1.9.1", diff --git a/packages/db/package.json b/packages/db/package.json index 3b1aaac..482f227 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -3,16 +3,21 @@ "module": "src/index.ts", "type": "module", "exports": "./src/index.ts", + "scripts": { + "generate": "prisma generate", + "studio": "bun with-env prisma studio", + "push": "bun with-env prisma db push", + "with-env": "dotenv -e ../../.env --" + }, "devDependencies": { - "@types/bun": "latest", - "drizzle-kit": "^0.24.2" + "@types/bun": "latest" }, "peerDependencies": { "typescript": "^5.0.0" }, "dependencies": { - "dotenv": "^16.4.5", - "drizzle-orm": "^0.33.0", - "postgres": "^3.4.4" + "@prisma/client": "5.20.0", + "dotenv-cli": "^7.4.2", + "prisma": "^5.20.0" } } diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma new file mode 100644 index 0000000..fde86e7 --- /dev/null +++ b/packages/db/prisma/schema.prisma @@ -0,0 +1,38 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions? +// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") +} + +enum ServerType { + STATEFUL + STATELESS + REVERSE_PROXY +} + +model Server { + id String @id @default(cuid()) + name String @unique + address String + port Int + type ServerType + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model User { + id String @id @default(cuid()) + username String @unique + password String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} \ No newline at end of file diff --git a/packages/db/src/index.ts b/packages/db/src/index.ts index 45400b3..1874de6 100644 --- a/packages/db/src/index.ts +++ b/packages/db/src/index.ts @@ -1,15 +1,5 @@ -import "dotenv/config"; -import { drizzle } from "drizzle-orm/postgres-js"; -import { migrate } from "drizzle-orm/postgres-js/migrator"; -import postgres from "postgres"; -import * as schema from "./schema"; +import { PrismaClient } from "@prisma/client"; -console.log(process.env.DATABASE_URL); +export * from "@prisma/client"; -// for migrations -const migrationClient = postgres(process.env.DATABASE_URL || "", { max: 1 }); -// migrate(drizzle(migrationClient), ...) - -// for query purposes -const queryClient = postgres(process.env.DATABASE_URL || ""); -export const db = drizzle(queryClient, { schema }); +export const prisma = new PrismaClient(); diff --git a/packages/db/src/schema.ts b/packages/db/src/schema.ts deleted file mode 100644 index cf72604..0000000 --- a/packages/db/src/schema.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { - serial, - text, - timestamp, - pgTable, - pgSchema, -} from "drizzle-orm/pg-core"; - -export const server = pgTable("server", { - id: serial("id"), - createdAt: timestamp("created_at"), - updatedAt: timestamp("updated_at"), -}); diff --git a/turbo.json b/turbo.json index 15a9068..6cfb29b 100644 --- a/turbo.json +++ b/turbo.json @@ -10,7 +10,8 @@ }, "dev": { "persistent": true, - "cache": false + "cache": false, + "env": ["DATABASE_URL"] } }, "ui": "tui",