Wener Notes

Prisma

约 2 分钟阅读
  • prisma/prismaGitHubprisma/prismaprisma/prisma · Apache-2.0, TS · PostgreSQL, MySQL, SQL Server, SQLite, MongoDB, CockroachDB · 问题 · 不支持 yarn2 PnP #1439 · 修改输出路径为 ,调整 PrismaClient 的引入路径可以使用笔记:Prisma
    • Apache-2.0, TS
    • PostgreSQL, MySQL, SQL Server, SQLite, MongoDB, CockroachDB
  • 问题
    • 不支持 yarn2 PnP #1439GitHub Issueprisma/prisma#1439
      • 修改输出路径为 ../src/generated/prisma,调整 PrismaClient 的引入路径可以使用
  • 参考
    • prisma/studioGitHubprisma/studioprisma/prisma · Apache-2.0, TS · PostgreSQL, MySQL, SQL Server, SQLite, MongoDB, CockroachDB · 问题 · 不支持 yarn2 PnP #1439 · 修改输出路径为 ,调整 PrismaClient 的引入路径可以使用笔记:Prisma
      • 闭源
    • Prisma PlaygroundLinkplayground.prisma.ioprisma/prisma · Apache-2.0, TS · PostgreSQL, MySQL, SQL Server, SQLite, MongoDB, CockroachDB · 问题 · 不支持 yarn2 PnP #1439 · 修改输出路径为 ,调整 PrismaClient 的引入路径可以使用笔记:Prisma
bash
npm install prisma --save-dev
# postgresql, mysql, sqlite, sqlserver, mongodb, cockroachdb
npx prisma init --datasource-provider postgresql
Packagesprismanpm PackageprismaNPM
  • 配置
  • DATABASE_URL
bash
yarn add @prisma/cli --dev
yarn add @prisma/client

mkdir prisma
cat << EOF > ./prisma/schema.prisma
datasource db {
  provider = "sqlite"
  url      = "file:./dev.db"
}

generator client {
  provider      = "prisma-client-js"
  // 默认位置
  output        = "node_modules/@prisma/client"
  binaryTargets = ["native"]
}

model User {
  id        Int      @default(autoincrement()) @id
  createdAt DateTime @default(now())
  email     String   @unique
  name      String
  // role      Role     @default(USER)
  // posts     Post[]
  // profile   Profile?
}

model Setting {
  id        String      @default(uuid()) @id
  key       String      @unique
  value     Json
}
EOF

yarn prisma generate
Packages@prisma/clinpm Package@prisma/cliNPM@prisma/clientnpm Package@prisma/clientNPM
bash
npx prisma db pull

npx prisma migrate resolve --applied 0_init

npm install @prisma/client

npx prisma generate
Packages@prisma/clientnpm Package@prisma/clientNPM
hcl
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

Notes

  • Query Engine - Rust 实现
    • 作为 sidecard 或者 n-api 使用
  • 架构不同于 Prisma1 - 客户端 -> 查询引擎 -> 数据库
    • 没有额外的服务 - 内嵌
    • cli 集成 db 迁移能力
    • 对不同组件进行拆分
    • Photon - 生成 ORM 代码
    • Life - 模型定义和迁移
    • Studio - 管理界面
    • GrahQL 能力
    • 部分核心能力使用 RUST 重写 - 之前为 Scala
      • 因为考虑可能多语言

关联信息

反向链接、本文链接的其他页面和外部资料。

References

GitHub5 条
其他外链1 条
最近更新commit 906e816Edit

On this page