在这次教程里,我们将学习如何设置 Prisma 和 Postgres。我们将使用真实世界中的书籍和作者实例。
使用 Prisma 和 Postgres 的前提条件请确保您已安装了以下各项:
- Node.js(v14 或更高版本)
- npm 或 yarn
- 在 Supabase 注册账户
Supabase 提供了一个托管的 Postgres 数据库,方便配合 Prisma 使用,让你轻松上手,无需自己搭建数据库服务器。Supabase 让你快速轻松地上手,并且性价比高,可以让你的项目如果获得成功,轻松扩展到数百万用户。
- 创建一个新的 Supabase 项目
-
登录您的 Supabase 账户。
-
点击 “新建项目”。
-
填写项目详情并点击 “创建新项目”。
- 获取数据库连接信息
- 在导航栏中,前往"项目设置" > "数据库"。
- 复制 Postgres 的 连接字符串(URI)。您接下来会用到它。
postgres://postgres.[ref]:[password]@[region].pooler.supabase.com:6543/postgres # 数据库连接字符串
这是数据库连接字符串
在您的项目中配置 (或安装) Prisma (Prisma 是一个数据库交互的工具)
Prisma 是一个 ORM 工具,它可以简化 Node.js 应用程序中的数据库操作。
- 创建一个新的Node.js项目:
接下来,我们创建一个名为 prisma-postgres 的目录。
mkdir prisma-postgres
然后,我们进入该目录。
cd prisma-postgres
这一步会使用默认配置初始化一个新的 npm 项目。
npm init -y
2. **安装 Prisma 和 Postgres 的客户端工具,并确保它们可以正常运行**
npm install prisma --save-dev
npm install @prisma/client
3. **初始化 Prisma:**
npx prisma init
注:此命令用于初始化 Prisma 项目。
此命令会创建一个 `prisma` 文件夹,包括 `schema.prisma` 文件和 `.env` 文件。
## 配置 Prisma 和 Postgres
1. **建立数据库连接**
* 打开 `.env` 文件(位于新建的 `prisma` 文件夹中),然后在这里添加 `DATABASE_URL` 和 `DIRECT_URL`,你可以在这里获取连接信息:[此处](https://supabase.com/dashboard/project/_/settings/database)。
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` 部分应如下所示:
```plaintext
(例如)
配置数据源数据库:
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
}
添加数据模型。比如说,对于一个图书馆系统。
模型定义 Author {
id Int @id @default(autoincrement())
name String
books Book[]
}
模型定义 Book {
id Int @id @default(autoincrement())
title String
author 作者对象 @relation(字段: [作者ID], 引用: [ID])
作者ID Int
}
生成PostgreSQL架构
使用 Prisma Migrate 将你的数据库模式应用到 Supabase 上的 Postgres 数据库中。
运行以下命令来初始化 Prisma 迁移:npx prisma migrate dev --name init
全屏模式 退出全屏
这个命令会:
- 生成迁移文件。
- 将迁移应用到Postgres数据库中。
- 生成Prisma客户端。
创建一个名为 script.js
的文件来测试运行数据库操作。
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
// 新建一个作者
const author = await prisma.author.create({
data: {
name: '叶夫根尼·扎米亚京',
},
});
// 新建一本新书
const book = await prisma.book.create({
data: {
title: '《我们》',
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`
全屏 退出全屏
你应该在控制台上看到一系列书籍及其对应的作者。
总结恭喜!您已成功为Postgres设置了Prisma,现在可以享受与Postgres数据库无缝互动的乐趣了。可以轻松地用Prisma操作Postgres数据库,就像它们是为彼此设计的一样。
这里省略了一些内容
通过按照这个指南,你已经开始用 Prisma 和 Postgres 构建更强大的应用程序的第一步。
共同学习,写下你的评论
评论加载中...
作者其他优质文章