个旧网站建设公司,静态网站html模板下载,整站优化要多少钱,自己做网站用什么软件昨晚#xff0c;Prisma ORM 发布了 5.12.0 稳定版本#xff0c;在此版本中 Prisma ORM 新增了对 Cloudflare D1 的预览支持#xff0c;现在我们可以选择将本地的 SQLite 数据库逐步迁移到 Cloudflare 上面#xff0c;从而实现无需额外成本即可构建处理大量用户的应用程序。…昨晚Prisma ORM 发布了 5.12.0 稳定版本在此版本中 Prisma ORM 新增了对 Cloudflare D1 的预览支持现在我们可以选择将本地的 SQLite 数据库逐步迁移到 Cloudflare 上面从而实现无需额外成本即可构建处理大量用户的应用程序。 Cloudflare D1 预览支持
D1 是 Cloudflare 的 SQLite 数据库可在使用 Cloudflare 部署应用程序时使用。
将 Prisma ORM 与 D1 结合使用时我们可以继续使用 Prisma 模式语言对数据库进行建模在 Prisma 模式中指定 sqlite 作为数据库提供程序并使用 Prisma 客户端与数据库进行交互。
要在 Cloudflare Workers 或 Cloudflare Pages 上使用 Prisma ORM 和 D1您需要将 sqlite 选项设置为您的数据库提供程序并通过 driverAdapters 预览功能使用 prisma/adapter-d1 数据库适配器此功能是在 Prisma ORM 5.4.0 版本中发布的。
以下是在 Worker 中使用 Prisma 客户端向 D1 数据库发送查询的示例
import { PrismaClient } from prisma/client
import { PrismaD1 } from prisma/adapter-d1// 将 D1Database 添加到 Env 类型接口
export interface Env {
// 这必须与您在 wrangler.toml 配置中定义的绑定名称相匹配DB: D1Database
}export default {async fetch(request: Request,env: Env,ctx: ExecutionContext): PromiseResponse {// 确保数据库名称与 wrangler.toml 文件和 Env 接口中的绑定名称匹配const adapter new PrismaD1(env.DB)// 使用 PrismaD1 驱动适配器实例化 Prisma 客户端const prisma new PrismaClient({ adapter })const users await prisma.user.findMany()const result JSON.stringify(users)return new Response(result)},
}SQLite 支持 createMany()
在 SQLite 中引入对 createMany() 的支持是一项期待已久且强烈要求的功能。
createMany() 是 Prisma 客户端上的一种方法在 2.16.0 版本中发布可让您一次将多条记录插入数据库。这在为数据库播种或插入批量数据时非常有用。
以下是使用 createMany() 创建新用户的示例
const users await prisma.user.createMany({data: [{ name: Sonali, email: sonaliprisma.io },{ name: Alex, email: alexprisma.io },{ name: Yewande, email: yewandeprisma.io },{ name: Angelina, email: angelinaprisma.io },],
})在此版本之前如果您想使用 SQLite 执行批量插入您很可能使用 $queryRawUnsafe 来执行原始 SQL 查询但现在你不必经历所有这些麻烦。
使用 SQLite 的 createMany() 在 API 方面的工作方式与其他数据库完全相同只是它不支持 skipDuplicates 选项。
在行为层面上当您的架构中的模型包含像 default(dbgenerated()) 或 default(autoincrement())这样的属性字段并且在条目之间没有一致提供值时SQLite 将把 createMany() 条目分割成多个 INSERT 查询。
修复和改进
Prisma 客户端
Decimal 数据类型和组合查询问题当字段为 Boolean 类型时批量 findUnique() 错误输出relationJoins MySQL 将嵌套的 Decimal 转换为 float使用 findUnique() 时意外查询导致查询全表Prisma 客户端已知请求错误D1 DateTime 类型不起作用
以上就是本期 Prisma ORM 5.12 版本带来的全部更新内容感谢 Prisma 开发团队及所有贡献者的辛勤付出给我们带来一款如此高效便捷的 TypeScript ORM。