Prisma 的官方网站:https://www.prisma.io/
安装
npm install prisma
目前应该是 4.x 版本
创建 prisma 文件
npx prisma init --datasource-provider sqlite
其中 sqlite 还可以指定为其他想初始化的数据库,如 MySQL
执行这条指令会在当前项目根文件夹创建一个.env
文件用来保存数据库的地址,还会创建一个 prisma
文件夹,该文件夹中有一个 shcema.prisma
的文件,这个文件用来定义数据库表的字段。
编辑 shcema.prisma 文件
.prisma 文件在 VSCode 上有插件,安装后能提供语法高亮和自动格式化等功能
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
generator client {
provider = "prisma-client-js"
}
model User {
id @id @default(@autoincrement())
name String
address String
}
其中用 model
关键字定义表,字段的的数据类型可以参考官方文档,这里主要讲讲 datasource db
和 generator client
的作用。
datasource db
指明数据库的类型和地址,可以通过根目录的.env
文件配置generator client
表示需要下载 Prisma 的 client
生成数据表
npx prisma migrate dev --name init
执行这条指令会扫描 .prisma
文件,读取其中的数据库配置,并生成数据表。这条指令还会执行 prisma generate
,该指令依赖 Prisma 客户端,因此需要下载 Prisma 客户端。
CLI 指令组合初始化
- 使用
npx prisma init
初始化 prisma 文件夹和 schema - 修改 schema,具体包括数据库 provider 和 model
- 使用
npx prisma migrate dev --name init
初始化数据库和PrismaClient
,这条指令主要包含如下工作:prisma generate
生成PrismaClient
prisma db push
同步 schema 到数据库,创建数据库表
实际上,使用
prisma init
primsa generate
这两条指令即可,后续执行操作 Primsa 会自动创建数据库。
类型
见官方文档:https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#model-field-scalar-types
Prisma 的类型在不同的数据库中并不兼容,比如 SQLite 无法使用 VarChar