一、Prisma

1、Prisma是什么?

prisma 是一个开源的 下一代 ORM,它包含了以下三个部分

  • Prisma Client: 自动生成、类型安全的查询构建器,用于 Node.js 和 TypeScript
  • Prisma Migrate: 数据迁移系统
  • Prisma Studio: 查询和编辑数据库中数据的图形化界面

每次调用prisma命令,CLI 通常会从 schema 文件读取一些信息,例如

  • prisma generate: 从 Prisma schema 读取 所有上述信息以生成正确的数据源客户端代码(例如 Prisma Client)。
  • prisma migrate dev: 读取数据源和数据模型定义以创建一个新的迁移

2、如何在项目中引入prisma

1、先安装prisma、然后安装 prisma/client

  1. - `npm i prisma -D`
  2. - `npm i @prisma/client `

2、在项目中执行命令 npx prisma init --datasoruce-provider mysql (mysql是自己用的数据库,如果使用的数据库是sqlite 就改成 provide sqlite);
这个命令会在文件夹根目录生成一个prisma/schema.prisma文件和一个.env文件

3、修改schema.prisma文件和.env文件,连接数据库

  1. generator client {
  2. provider = "prisma-client-js"
  3. }
  4. datasource db {
  5. provider = "mysql"
  6. url = env("DATABASE_URL")
  7. }
  8. // 这个模型是对应要操作数据库的字段的类型
  9. model image_history_list {
  10. id Int @id @default(autoincrement())
  11. imageUrl String
  12. }
  1. datasource db {
  2. provider = "mysql" // 使用的数据库类型
  3. url = "mysql://johndoe:mypassword@localhost:5432/mydb?connection_limit=5"
  4. }
  5. //用户名:密码@localhost:端口/数据库名字

这里值得注意的是:连接数据库链接的字符串,如果存在特殊符号,则需要使用**encodeURIComponent()**进行转义

4、实例化Prisma Client应用

  1. // js
  2. // 在你的应用程序中使用 `prisma` 来读取和写入数据库中的数据
  3. const { PrismaClient } = require('@prisma/client')
  4. const prisma = new PrismaClient()
  5. //ts
  6. // 在你的应用程序中使用 `prisma` 来读取和写入数据库中的数据
  7. import { PrismaClient } from '@prisma/client'
  8. const prisma = new PrismaClient()
  9. // 在你的应用程序中使用 `prisma` 来读取和写入数据库中的数据

重要提示:每次对prisma schema进行更改之后。你都需要重新运行命令 prisma generate 去更新生成的 Prisma Client代码