在我作为全堆栈开发人员的整个Nodejs旅程中,我一直在与许多ORMS和查询构建者联系,处理数据库始终是我的真正痛苦,尤其是当大多数Orms的实际工具不是足够清晰。
现在已经将近一年了,我一直在使用我认为是Prisma的最佳ORM。这是我见过的数据库操作的最完整的工具之一,我将列出一些有关它的内容,并希望鼓励人们尝试一下。
用代码对数据库进行建模
prisma使用架构文件来定义数据库,因此您可以从中写出整个数据库,而无需使用某种类似类或装饰器的抽象,只有一个简单的“模型”,Prisma可以生成数据库轻松。它还可以读取您已经构建的数据库,并从中提取模型,构建与数据库匹配的架构文件。
一个例子就是这样:
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references[id])
authorId Int
}
使用此模型,您可以轻松地生成一个带有两个表之间有关系的数据库,并且以更“代码”的方式,易于理解。
自动客户和类型生成
prisma使用自定义客户端来管理您的数据库查询,这意味着每个Prisma项目的客户端内置不同,客户端是在您执行的每个数据库迁移之后生成的,并保持其类型与架构文件匹配。
prisma还为每个表生成一个基本类型定义,因此您也不需要创建应用程序的不同类型文件,而是直接从Prisma导入的文件。
查询批处理
prisma会自动批量查询,例如,在GraphQL中易于处理n+1个问题,而无需其他工具或构建自定义数据编载程序。
Prisma Studio
我认为这是其他最酷的功能,它使Prisma与其他图书馆区分开来。
使用Prisma时,您可以轻松地运行一个名为“ Prisma Studio”的CLI命令,它将读取您的模式文件,并旋转基于浏览器的数据库管理收费,使您可以读取所有表,添加和添加和从它们中删除内容,并在测试时实时观察它们。
有关更多信息和关于它的非常好的文档,只需访问prisma.io并自己尝试,Prisma也有许多实现和自动化,我在这篇文章中没有提及。
如果您喜欢这种类型的内容,请随时在社交媒体上和Dev.to上关注我,我总是尝试写一些我目前在项目上使用的很酷的东西。