ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Prisma 1 常见问题(General FAQ)深度解析:用 GraphQL 抽象层取代传统 ORM

Prisma 1 常见问题(General FAQ)深度解析:用 GraphQL 抽象层取代传统 ORM 后端数据库GraphQL【免费下载链接】prisma1 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL MongoDB) [deprecated]项目地址https://gitcode.com/gh_mirrors/pr/prisma1点击查看免费下载导读本文围绕 Prisma 1 官方文档「General FAQ」中的五大核心问题展开Prisma 是什么、如何接入使用、支持哪些编程语言、可在哪些平台与云环境部署、适合谁使用。文中不仅完整还原 FAQ 的原始结论还结合本仓库prisma1的 CLI 源码、Docker 部署配置与 Scala/TypeScript 服务端实现给出可验证的源码级佐证与可落地的实操示例帮助你快速判断 Prisma 1 是否适合你的项目并掌握从安装 CLI 到用 Docker 拉起数据库环境的完整路径。什么是 Prisma把数据库变成 GraphQL API 的抽象层Prisma 1 在官方 FAQ 中被明确定义为一层抽象层abstraction layer它把你现有的数据库PostgreSQL、MySQL、MongoDB转化为一个可直接使用的GraphQL API。你不再需要直接编写 SQL 或调用 NoSQL 数据库的原生 API而是通过 GraphQL 的查询语言与数据进行交互。这一设计与仓库根目录 README.md 的描述完全一致Prisma 1 用来替代传统 ORM并简化数据库工作流其三大核心能力为Access通过自动生成的、类型安全的 Prisma Client 访问数据库Migrate声明式数据建模与迁移可选Manage通过 Prisma Admin 进行可视化数据管理。README 同时明确Prisma 1 被用于构建GraphQL、REST、gRPC API当前支持 MySQL、PostgreSQL、MongoDB 三种数据库。FAQ 中提到的“数据库变成 GraphQL API”正是这套架构对外暴露的主要形态。FAQ 还特别强调GraphQL 与 Prisma 本身完全开源构建 GraphQL 服务不存在供应商锁定vendor lock-in。从仓库布局看本仓库同时包含 cli/TypeScript 实现的命令行工具与 server/Scala 实现的 Prisma 服务端两侧代码均以开源形式托管印证了这一说明。如何使用 Prisma两种主流接入方式FAQ 给出了 Prisma 的两种主要使用方式这也是理解 Prisma 架构的入口把 Prisma 作为自建 GraphQL 服务器的基础foundation由你自行构建服务器获得完整的灵活性与能力实现自己的业务逻辑、自定义认证流程、对接第三方 API。这是生产环境中最常见、能力最完整的用法。从前端直接访问 Prisma 的 GraphQL API这种模式能非常快地得到一个托管式 GraphQL API但 API 只提供数据模型中各类型的 CRUD 操作含排序、过滤、分页几乎不承载业务逻辑。它更适合原型验证、简单数据存取或者作为 GraphQL 的入门学习途径。从仓库的服务端目录结构可以看出第二种模式背后所依赖的能力server/servers下分别有 api/提供 GraphQL API 的核心服务、subscriptions/实时订阅、deploy/部署管理与 workers/后台任务等模块说明 CRUD 之外的能力如订阅也是服务端原生提供、开箱即用的。安装 Prisma CLIPrisma 服务由 Prisma CLI 管理FAQ 给出的安装命令为npm install -g prisma仓库中 cli/packages/prisma-cli/package.json 可以验证这一安装路径的底层信息该包名为prisma1版本 1.21.1通过bin: { prisma1: dist/index.js }提供命令行入口同时声明了engines: { node: 6.13.0 }即安装机器需要 Node.js 6.13 及以上版本。其 CLI 引擎配置cli-engine字段声明了默认命令为help并挂载了prisma-cli-core插件因此安装后可通过prisma help查看全部可用命令。注README 顶部已声明 Prisma 1 于 2022 年 9 月 1 日弃用deprecated新项目建议转向新版 Prisma。本文所述命令与配置均以当前仓库Prisma 1 时代的实际内容为准。Prisma 支持哪些编程语言FAQ 的结论是Prisma与 GraphQL 一样是语言无关language agnostic的理论上可与任何编程语言配合使用。但在构建 GraphQL 服务器这件事上JavaScript 生态的支撑最好原因在于graphql-js、GraphQL bindings 等成熟工具链的存在不过用其他语言使用 GraphQL 同样完全可行。FAQ 同时给出了一个重要的实现事实Prisma 本身由 Scala 和 TypeScript 实现。这一说法在仓库中可以直接得到印证server/ 下的服务端核心api、deploy、subscriptions、workers 等服务器以及 connectors 各数据库连接器全部为.scala源文件即 Scala 实现cli/ 下的 CLI 工具链prisma-cli、prisma-cli-core、prisma-cli-engine、prisma-yml、prisma-client-lib等包主要为.ts源文件即 TypeScript 实现。因此可以推断Prisma 的架构是「TypeScript 的 CLI 管理端 Scala 的运行时服务端」组合客户端侧生成 TypeScript/JavaScript 代码与数据交互。Prisma 支持哪些平台与云服务商FAQ 明确指出Prisma 基于Docker因此“在哪里、以何种方式部署 Prisma”完全取决于开发者自己云平台只是承载 Docker 容器的宿主。FAQ 列举的示例包括 Digital Ocean、Microsoft Azure、Google Compute Engine、AWS、Heroku 等主流云厂商。仓库中 server/docker-compose/ 目录提供了各数据库对应的 Docker Compose 示例配置可直接用于在任意支持 Docker 的主机上拉起配套数据库例如MySQLserver/docker-compose/mysql/dev-mysql.yml 定义mysql:5.6容器root 密码为prisma映射127.0.0.1:3306:3306对应的 server/docker-compose/mysql/prisma.yml 则声明 Prisma 服务端口4466与默认数据库defaultconnector 为mysqlhost127.0.0.1、port3306、userroot并开启rawAccess: truePostgreSQLserver/docker-compose/postgres/prisma.yml 使用postgres连接器host127.0.0.1、port5432、userpostgresMongoDBserver/docker-compose/mongo/dev-mongo.yml 定义mongo:3.6容器并设置管理员账号server/docker-compose/mongo/prisma.yml 则通过uri: mongodb://prisma:prisma127.0.0.1:27017/?authSourceadminsslfalse直接以连接串方式接入。这些配置体现了两点实现事实一是 Prisma 服务默认监听4466端口二是 MySQL/PostgreSQL 连接器采用 host/port/user/password 结构而 MongoDB 连接器使用标准uri连接串。Docker 容器的可移植性正是 FAQ 所述“部署方式取决于开发者”的技术基础——同一套镜像与配置可以原样运行在自建服务器或任何云厂商的容器服务上。谁应该使用 PrismaFAQ 对目标用户给出的定位是一切想要构建生产就绪、可扩展的 GraphQL 服务器的人无论团队规模与项目范围大小。结合前文可以进一步归纳适用场景想要快速获得带过滤、排序、分页能力的 CRUD API而不想手写 SQL 或维护传统 ORM 映射的团队希望用声明式数据模型datamodel驱动数据库结构并借助 CLI 管理部署的开发者需要 GraphQL 订阅实时推送能力的前后端项目因为服务端 subscriptions/ 模块原生提供支持。需要如实说明的限制是从前端直连模式只提供 CRUD 操作业务逻辑仍需在服务端自行实现且 Prisma 1 已进入弃用状态存量项目可继续按本文内容维护新项目应评估升级方案。小结本文完整覆盖了 Prisma 1「General FAQ」的全部议题抽象层定位、两种接入模式、语言无关特性、Docker 化部署与目标用户画像。在此基础上通过仓库中的 README.md、cli/packages/prisma-cli/package.json、server/docker-compose/ 与 server/servers/ 等源码与配置逐条印证了 FAQ 结论背后的实现细节。若想继续深入可阅读仓库根目录的 CONTRIBUTING.md 与 ROADMAP.md或进入 cli/ 与 server/ 目录查看 CLI 与服务端的完整实现。赞分享后端数据库GraphQL【免费下载链接】prisma1 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL MongoDB) [deprecated]项目地址https://gitcode.com/gh_mirrors/pr/prisma1点击查看免费下载相关推荐Prisma 1 常见问题全解数据库抽象层、GraphQL API 与部署实践Prisma 1 常见问题全解数据库抽象层、GraphQL API 与部署实践 Prisma 是一个将数据库转变为 GraphQL API 的抽象层本文基于后端数据库GraphQLPrisma 1 通用 FAQ 深度解读从 GraphQL 数据库抽象层到生产级部署实践Prisma 1 通用 FAQ 深度解读从 GraphQL 数据库抽象层到生产级部署实践 Prisma 是一个将数据库抽象为 GraphQL API 的持久化后端数据库GraphQLPrisma 1 通用 FAQ 全解析GraphQL 数据库抽象层的定位、用法与部署生态Prisma 1 通用 FAQ 全解析GraphQL 数据库抽象层的定位、用法与部署生态 导读 Prisma 1 是一层将数据库变成GraphQL API后端数据库GraphQL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表