为了账号安全,请及时绑定邮箱和手机立即绑定

Prisma搭配Postgres搭建数据库系统的实战教程:以图书和作者为例

在这次教程里,我们将学习如何设置 Prisma 和 Postgres。我们将使用真实世界中的书籍和作者实例。

使用 Prisma 和 Postgres 的前提条件

请确保您已安装了以下各项:

  • Node.js(v14 或更高版本)
  • npmyarn
  • Supabase 注册账户
配置 Prisma 和 Postgres

Supabase 提供了一个托管的 Postgres 数据库,方便配合 Prisma 使用,让你轻松上手,无需自己搭建数据库服务器。Supabase 让你快速轻松地上手,并且性价比高,可以让你的项目如果获得成功,轻松扩展到数百万用户。

  1. 创建一个新的 Supabase 项目
  • 登录您的 Supabase 账户

  • 点击 “新建项目”

  • 填写项目详情并点击 “创建新项目”

    1. 获取数据库连接信息
  • 在导航栏中,前往"项目设置" > "数据库"
  • 复制 Postgres连接字符串(URI)。您接下来会用到它。
postgres://postgres.[ref]:[password]@[region].pooler.supabase.com:6543/postgres  # 数据库连接字符串
这是数据库连接字符串
在您的项目中配置 (或安装) Prisma (Prisma 是一个数据库交互的工具)

Prisma 是一个 ORM 工具,它可以简化 Node.js 应用程序中的数据库操作。

  1. 创建一个新的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客户端。
使用 Prisma Client 操作 Prisma + Postgres

创建一个名为 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 构建更强大的应用程序的第一步。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消