在本教程中,我們將探討如何設置 Prisma + Postgres。我們將使用與書籍和作者相關的現實世界示例。
在開始之前,請確保您已安裝以下項目:
Supabase 提供了一個可供 Prisma 使用的托管 Postgres 數據庫,使您能夠輕鬆開始,而無需設置自己的數據庫伺服器。如果您的項目取得成功,Supabase 是一個快速且經濟的擴展到數百萬用戶的方法。
檢索數據庫連接詳細信息
複製 Postgres 的 Connection string (URI)。您在下一步中需要它:
postgres://postgres.[ref]:[password]@[region].pooler.supabase.com:6543/postgres
Prisma 是一個 ORM,可簡化 Node.js 應用程式中的數據庫交互。
初始化 Node.js 專案
mkdir prisma-postgres
cd prisma-postgres
npm init -y
安裝 Prisma 和 Postgres 客戶端
npm install prisma --save-dev
npm install @prisma/client
初始化 Prisma
npx prisma init
此命令將創建一個名為 prisma
的目錄,並包含 schema.prisma
文件和 .env
文件。
設置數據庫連接
.env
文件(位於新的 prisma
資料夾中)。添加 DATABASE_URL
和 DIRECT_URL
,您可以從 這裡 獲取連接詳細資訊:
DATABASE_URL="postgres://postgres.[ref]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres"
DIRECT_URL="postgres://postgres.[ref]:[password]@aws-0-[region].pooler.supabase.com:5432/postgres"
直接連接(在 5432 端口上)是執行數據庫遷移所需的。
定義數據模型
prisma/schema.prisma
。更新 datasource
區塊以包含 DIRECT_URL,如下所示:
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
}
添加您的數據模型。對於一個圖書館系統:
model Author {
id Int @id @default(autoincrement())
name String
books Book[]
}
model Book {
id Int @id @default(autoincrement())
title String
author Author @relation(fields: [authorId], references: [id])
authorId Int
}
使用 Prisma Migrate 將您的模式應用於 Supabase 的 Postgres 數據庫。
npx prisma migrate dev --name init
此命令將:
創建一個 script.js
文件以測試數據庫操作。
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
// 創建一個新作者
const author = await prisma.author.create({
data: {
name: 'Yevgeny Zamyatin',
},
});
// 創建一本新書
const book = await prisma.book.create({
data: {
title: 'We',
authorId: author.id,
},
});
// 檢索所有書籍及其作者
const books = await prisma.book.findMany({
include: { author: true },
});
console.log(books);
}
main()
.catch((e) => console.error(e))
.finally(async () => {
await prisma.$disconnect();
});
運行腳本:
node script.js
您將在控制台上看到一本本書及其相關作者的數組。
恭喜您!您已經設置了 Prisma 與 Postgres。這一設置允許您無縫地與您的 Postgres 數據庫進行交互。
通過遵循本指南,您已經邁出了使用 Prisma 和 Postgres 構建穩健應用程序的第一步。