Prisma ORM 又双叒叕发布新版本了!🚀🚀🚀

前言

Prisma ORM 又发布新版本了,这一版本不仅提升了 Prisma 的核心功能,还通过新的 CI/CD 工具和用户界面改进,为开发者提供了更高效的开发体验。以下是主要更新的详细介绍。

往期精彩推荐

正文

配置和模式增强

  • 使用 prisma.config.ts 进行 TypeScript 原生配置

Prisma ORM 现在支持通过 TypeScript 文件 prisma.config.ts 配置项目中的各种方面,包括模式、迁移、SQL 视图、TypedSQL、种子命令、外部管理表和驱动适配器!

js 复制代码
import path from "node:path";
import { defineConfig } from "prisma/config";

export default defineConfig({
  schema: path.join("db", "schema.prisma"),
  migrations: {
    path: path.join("db", "migrations"),
    seed: "tsx db/seed.ts",
  },
});
  • 多模式支持

现在,您可以将数据库表组织到多个模式中,这一功能已正式发布,适用于 PostgreSQLSQL Server 等数据库。通过在 Prisma 模式中使用 @@schema 属性。

js 复制代码
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
  schemas  = ["base", "shop"]
}

model User {
  id     Int     @id
  orders Order[]

  @@schema("base")
}

model Order {
  id      Int  @id
  user    User @relation(fields: [userId], references: [id])
  userId  Int

  @@schema("shop")
}

由于 mysql 和 sql lite 的命名空间和模式概念不同,所以该功能暂不支持 mysql 和 sql lite !

  • SQL 视图支持(预览版)

Prisma ORM 现在允许您直接在模式中使用 SQL 视图。然而,这一功能目前仍处于预览阶段,存在一些限制。例如,开发者无法在视图上定义 @id@index@unique,并且某些操作如 findUnique、写入操作、游标分页、隐式排序和关系查询是禁用的!

  • 外部管理表

一个新功能,允许您将外部管理的表包含在 Prisma Client 中。这些表将被 Prisma Migrate 忽略,使其适合于需要查询非 Prisma 管理表的数据的场景,例如 Supabase 的用户表。对这些表的配置可以在 prisma.config.ts 中完成,为开发者提供了更大的灵活性。

js 复制代码
// prisma.config.ts
export default defineConfig({
  tables: {
    external: [
      "users",
    ]
  },
  ...
})

Postgres 特定功能

  • Prisma Postgres 的新管理 API

引入了一个新的 REST API,用于管理 Prisma Postgres 实例。该 API 允许您创建和删除实例、管理连接字符串,并直接从 Prisma Console 自动化工作流。

js 复制代码
// Set HTTP headers (auth via a dedicated service token)
const headers = {
  Authorization: `Bearer ${SERVICE_TOKEN}`, // get your token in Prisma Console
  'Content-Type': 'application/json',
};

// Create a new project
const projectName = `demo-project-${Date.now()}`;
const region = 'us-east-1';

const createProjectRes = await axios.post(
  `https://api.prisma.io/v1/projects`,
  { name: projectName, region },
  { headers }
);

const project = createProjectRes.data;
const projectId = project.id || (project.data && project.data.id);

console.log('Created project and databases: \\n', project);

开发和部署工具

  • Prisma Postgres 的 CI/CD GitHub Actions

为了更好地整合到 CI/CD 管道中,Prisma 引入了两个 GitHub Actions 模板!

  • 使用 npx create-db 快速启动 Postgres

使用 npx create-db 命令可以在几秒钟内启动一个 Postgres 数据库实例,无需身份验证,如果 24 小时未认领,将自动删除。开发者可以通过 Prisma Console 认领它以进行持久使用!

  • Prisma Console UI 的重新设计

Prisma Console 已经进行了导航改版,使创建新项目、在现有项目之间切换以及访问设置变得更简单,减少了操作复杂性。

最后

不得不说,最近几个新版本通过增强的配置选项、对高级 Postgres 功能的支持,以及新的工作流工具,都为开发者提供了舒适的开发体验!

更多详细更新看这里:www.prisma.io/changelog?u...

今天的分享就这些了,感谢大家的阅读,如果文章中存在错误的地方欢迎指正!

往期精彩推荐

相关推荐
lhbian2 分钟前
node.js下载、安装、设置国内镜像源(永久)(Windows11)
node.js
网络点点滴27 分钟前
透传属性$attrs
前端·javascript·vue.js
90后的晨仔35 分钟前
OpenClaw macOS 完整安装指南
前端
Moment43 分钟前
尤雨溪宣布 Vite+ 正式开源,前端工具链要大一统了
前端·javascript·面试
喵叔哟1 小时前
5. 【Blazor全栈开发实战指南】--Blazor组件基础
开发语言·javascript·ecmascript
sunny_1 小时前
📖 2026年 大厂前端面试手写题库已开源(2.3k star)
前端·面试·github
IT_陈寒1 小时前
Vue组件复用率提升300%?这5个高阶技巧让你的代码焕然一新!
前端·人工智能·后端
We་ct2 小时前
LeetCode 79. 单词搜索:DFS回溯解法详解
前端·算法·leetcode·typescript·深度优先·个人开发·回溯
ujainu2 小时前
Electron 实战:将用户输入保存到本地文件 —— 基于 `fs.writeFileSync` 与 IPC 的安全写入方案
javascript·安全·electron
小奶包他干奶奶2 小时前
将svg对象化,并动态修改svg图标的颜色、尺寸等
前端·html