Prisma 中文文档 下载 App

SQLite 5 分钟快速入门

为什么选 SQLite 来快速入门

SQLite 是一个文件数据库——所有数据存在一个 .db 文件里,不需要安装和启动数据库服务。对于 Prisma 初学者来说,这是最省心的选择:

5 分钟跑通

1. 创建项目

mkdir prisma-sqlite-demo
cd prisma-sqlite-demo
npm init -y
npm install typescript ts-node @types/node --save-dev
npm install @prisma/client
npm install prisma --save-dev
npx tsc --init

2. 初始化 Prisma(指定 SQLite)

npx prisma init --datasource-provider sqlite

这条命令会自动把 prisma/schema.prisma 里的 datasource provider 设为 sqlite,.env 里的 DATABASE_URL 会是 file:./dev.db——数据文件会存放在 prisma/dev.db。

3. 编写 Schema

打开 prisma/schema.prisma,替换成:

datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

model Task {
  id          Int      @id @default(autoincrement())
  title       String
  description String?
  done        Boolean  @default(false)
  createdAt   DateTime @default(now())
}

4. 生成表结构 + Client

npx prisma migrate dev --name init

执行完,prisma/dev.db 文件出现了,里面已经有了 Task 表,Prisma Client 也自动重新生成了。

5. 写查询脚本

创建 main.ts:

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

async function main() {
  // 创建任务
  await prisma.task.create({
    data: { title: '学习 Prisma', description: '写个 demo' },
  })
  await prisma.task.create({
    data: { title: '提交代码' },
  })

  // 查询所有任务
  const tasks = await prisma.task.findMany()
  console.log(tasks)
}

main()
  .catch(console.error)
  .finally(() => prisma.$disconnect())

运行:

npx ts-node main.ts

输出两个刚创建的任务对象,数据库文件 prisma/dev.db 里已经有了真实数据。

6. 用 Studio 查看

npx prisma studio

浏览器自动打开 Studio(默认本地 5555 端口),你可以看到刚才创建的两条 Task 记录,能筛选、编辑、添加新记录。

常见坑

什么时候 SQLite 够用