【免费下载链接】prisma1
💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated]
项目地址:
https://gitcode.com/gh_mirrors/pr/prisma1
点击查看 免费下载
Prisma Cloud 是 Prisma(本仓库 prisma1)提供的云服务管理平台,承载着 Prisma 服务器的创建、Workspace 组织以及服务的远程部署能力。本文以仓库内 docs/1.10/05-FAQ/03-Prisma-Cloud.md 为主体,结合 Prisma 服务器总览、Demo Server 部署教程 与 CLI 源码,系统讲解 Workspace 与权限、三种服务器形态、登录认证、多阶段部署、数据库连接与备份策略,帮助读者完整掌握基于 Prisma Cloud 的服务生命周期管理。
一、Prisma Cloud 核心概念:Workspace 是什么
在 Prisma Cloud 中,Workspace 是组织与管理资源的基本单元。FAQ 原文用一个非常直观的类比给出了定义:
你可以把 Workspace 大致理解为类似 GitHub 组织(organization)的概念——它是一组个人 Prisma Cloud 账户、Prisma 服务器与服务的集合。
Workspace 与这三类实体之间存在如下对应关系(FAQ 原文):
- 一个 Workspace 可以关联多个个人账户;反过来,一个个人账户也可以加入多个 Workspace(多对多)。
- 一个 Workspace 可以关联多个 Prisma 服务器;而一个 Prisma 服务器总是恰好连接到一个 Workspace(多对一)。
- 因为一个 Prisma 服务器可以托管多个服务,所以一个 Workspace 自然也能关联到多个服务。
需要特别留意的是,这里讨论的 Prisma 服务器均指在 Prisma Cloud 中创建的私有服务器(private server),而自托管(self-hosted)服务器和 Demo 服务器并不完全适用上述对应关系。
这一设计与 CLI 部署流程的源码实现是一致的:在 deploy.ts 中,prisma deploy 会读取服务定义里的 workspace,若为空则通过部署向导获取(results.workspace),并在部署前将工作区拼接进集群初始化与服务创建逻辑(如 concatName(cluster, name, workspace)),最终形成形如 https://eu1.prisma.sh/<workspace-id>/<service>/<stage> 的完整端点。
1.1 团队成员的访问与权限管理
关于权限,FAQ 明确说明:当前(文档对应版本)所有被邀请加入 Prisma Cloud 项目的团队成员都拥有完全访问权限,更细粒度的访问与权限管理功能在文档写作时"即将推出"(coming soon)。
也就是说,在该版本的时间线上,Prisma Cloud 尚未提供基于角色的分级授权,团队协作依赖的是项目级的全员可见访问。这一限制在规划团队规模与权限隔离方案时需要提前纳入考虑。
二、三种 Prisma 服务器类型及其适用场景
FAQ 指出,部署 Prisma 服务(执行 prisma deploy)的前提是存在一个可用的 Prisma 服务器——服务器是零个或多个 Prisma 服务的运行时环境。Prisma 服务器总体上分为三种类型:
| Local / 自托管 | 本机 Docker 或任意云厂商 | 生产、自定义环境 | 无内置限制,需要自己运维 |
| Demo(Sandbox) | Prisma Cloud | 学习、原型、开发 | 速率受限、存储上限 100 MB |
| Private(私有) | Prisma Cloud | 生产 | 连接你自备的数据库 |
2.1 本地 / 自托管服务器
使用 Docker 即可在本地或任意云厂商上创建自己的 Prisma 服务器,容器与镜像由 Docker CLI 统一管理。仓库文档提供了在 Digital Ocean 上自托管 Prisma 集群的完整教程:Digital Ocean(Docker Machine)部署教程.md)。
在 Prisma 服务器总览 中,自托管服务器支持两类认证:
- 非对称认证(公钥/私钥对):服务器通过 docker-compose.yml 中的 legacySecret 持有公钥,Prisma CLI 本地持有私钥生成认证令牌,服务器用公钥校验(例如 prisma deploy 请求)。
- 对称认证(单一 secret):Prisma 1.7 引入的 managementApiSecret 方式。若在 docker-compose.yml 中设置了该值,CLI 必须通过环境变量 PRISMA_MANAGEMENT_API_SECRET 携带同一 secret,否则无法与服务器通信(prisma deploy 会失败);若未设置则无需认证。
2.2 Demo 服务器(Prisma Sandbox)
Prisma Cloud 提供免费的 Demo 服务器(文档中亦称 Prisma Sandbox),用于学习、原型与开发。FAQ 与服务器总览共同给出了其两条硬性限制:
在 服务器总览 中还有两点补充:
- 部署到 Demo 服务器需要先注册 Prisma Cloud 账户。
- 端点形如 https://eu1.prisma.sh/<workspace-id>/<service>/<stage>,其中 <workspace-id> 是随机生成的字符串(例如 public-helixgoose-752),见 prisma.yml 的 endpoint 说明。
2.3 私有服务器
私有 Prisma 服务器连接到你自己的数据库,数据库在服务器初始化创建时完成连接配置(详见本文第六节)。它是生产环境推荐的两类选择之一(另一类是自托管)。
FAQ 明确建议:生产场景应始终使用自托管或私有 Prisma 服务器,而不是 Demo 服务器。
三、登录 Prisma Cloud:CLI 认证机制
无论是部署到 Demo 服务器还是私有服务器,都需要先让 CLI 与 Prisma Cloud 完成认证。认证核心机制(服务器总览 · 认证章节)如下:
- 登录:CLI 通过 ~/.prisma/config.yml 中存储的 cloudSessionKey 向 Prisma Cloud 认证。首次执行 prisma login 时 CLI 会将该 key 写入该文件。
- 登出:从 ~/.prisma/config.yml 中删除 cloudSessionKey 即可完成登出。
对应的命令行命令在 CLI 命令参考 中有完整说明:
# 交互式登录(会打开浏览器完成注册/登录)
prisma login
# 手动传入 cloud session key
prisma login –key __KEY__
其中 __KEY__ 需替换为 ~/.prisma/config.yml 中的 cloudSessionKey 值。除了 –key 标志外,也可以通过环境变量 PRISMA_CLOUD_SESSION_KEY 提供会话密钥——这在 CI 等自动化环境中尤其有用。
登录之后,可以用以下命令核验账户信息(用户名与邮箱):
prisma account
命令细节见 prisma account 参考文档。
从源码看,登录命令本身非常精简——login.ts 只是定义了 -k, –key 标志,并在 run() 中执行 this.client.login(key || this.env.cloudSessionKey),即优先使用 –key 显式传入的值,否则回退到 CLI 环境中的 cloudSessionKey(即 ~/.prisma/config.yml 中保存的会话密钥)。这也印证了"先 prisma login 写入 key,之后 deploy 自动携带认证"的工作流。
四、将服务部署到 Demo 服务器:完整实操
结合 Demo Server 部署教程,把 Prisma 服务跑上 Prisma Cloud 的标准流程如下。
4.1 安装 CLI 并初始化服务
npm install -g prisma
# 或 yarn global add prisma
prisma init hello-world
执行 prisma init 后,CLI 会询问使用现有服务器还是新建服务器;选择 Prisma Demo server 后,若尚未注册 Prisma Cloud 账户,浏览器会自动打开注册页面。登录成功后需选择 Demo 服务器所在区域(demo-eu1 或 demo-us1,CLI 会显示各服务器的延迟以辅助选择),随后确认服务名称与阶段(stage)。
初始化会生成两个文件:
- prisma.yml:服务根配置,包含 endpoint(服务 HTTP 端点)与 datamodel(数据模型文件路径);
- datamodel.graphql:GraphQL SDL 格式的数据模型定义,例如:
type User {
id: ID! @unique
name: String!
}
生成的 prisma.yml 形如:
endpoint: https://eu1.prisma.sh/alice-doe-fd2dcf/hello-world/dev
datamodel: datamodel.graphql
其中 alice-doe-fd2dcf 即承载该服务的 Prisma Cloud Workspace ID。关于 endpoint 的完整结构(服务器、Workspace、服务名、Stage 四要素)与 datamodel 等全部配置项的详细说明,见 prisma.yml YAML 结构文档。
4.2 部署服务
cd hello-world
prisma deploy
prisma init 只生成文件、并未真正部署,执行 prisma deploy 后,基于数据模型自动生成的 CRUD GraphQL API 才正式可用(例如 user、users 查询以及 createUser、updateUser、deleteUser 等变更操作)。
这里还涉及 endpoint 的两种处理场景(服务器总览):
- prisma.yml 中已指定 endpoint:CLI 直接向该端点部署;
- prisma.yml 中未指定 endpoint:CLI 通过向导提问,构造 endpoint 并写入 prisma.yml 作为后续默认值;若想重新唤起向导,可执行 prisma deploy –new 或手动删除 prisma.yml 中的 endpoint。
4.3 用 Playground 验证 API
prisma playground
该命令会打开 GraphQL Playground(未安装桌面版时自动在浏览器中打开),随后即可直接发送查询与变更,例如创建节点:
mutation {
createUser(data: { name: "Sarah" }) {
id
}
}
以及带过滤、排序、分页的查询:
# 名称包含 "ra" 的节点
query {
users(where: { name_contains: "ra" }) { id name }
}
# 按名称倒序
query {
users(orderBy: name_DESC) { id name }
}
# 分页取第 20-29 条
query {
users(skip: 20, first: 10) { id name }
}
五、多环境(multi-stage)开发工作流
FAQ 专门回答了"如何进行多阶段开发"这一问题,核心结论是:
- 因为一个 Prisma 服务器可以托管多个服务,你可以把代表不同环境/阶段的多个服务(如 dev、staging、prod)部署到同一个服务器上——多阶段开发并不强制要求使用多台服务器。
- 但为了确保 dev 或 staging 中的任何操作都不会对 prod 造成负面影响,强烈建议把生产环境部署到独立的 Prisma 服务器上;理想情况下,其他阶段/环境也各自独立,以最大程度降低相互影响的风险。
- 在合适的场景下,也可以使用本地 Prisma 服务器或 Prisma Cloud Demo 服务器作为开发环境。
这与 endpoint 的构成一一对应:endpoint 中的第四要素正是 stage(如 dev、staging、prod),同一 Workspace 下的同一服务名可通过不同 stage 区分环境,而生产环境则配合独立服务器实现物理隔离(参考 prisma.yml 的 endpoint 示例)。
六、数据库连接与备份策略
6.1 连接数据库
FAQ 指出:每个 Prisma 服务器由一个数据库支撑,数据库在服务器初始创建时完成连接(文档写作时,未来计划支持一个服务器连接多个数据库)。
这一点也解释了私有服务器与自托管服务器在架构上的本质:Prisma 只是数据库之上的一层,真正的数据存储始终在你自己的数据库实例中。对于私有服务器,你需要自己预先准备好数据库(如 Postgres、MySQL 或 MongoDB——本仓库 README.md 描述该项目涵盖的数据库类型即 Postgres、MySQL 与 MongoDB),并在创建服务器时完成连接配置。
6.2 自动备份
FAQ 明确:目前没有自动备份——因为 Prisma 只是数据库之上的一层,你对数据库本身依然拥有完全控制权,因此备份策略完全由你自行决定,拥有充分的灵活度。FAQ 同时说明,未来 Prisma Cloud 计划简化备份工作流,例如支持自动的 point-in-time restore(时间点恢复)。
对生产用户而言,这意味着:部署到 Prisma Cloud 私有服务器后,仍应沿用你既有数据库的备份方案(如数据库快照、binlog/redo log 归档等),不要依赖 Prisma 层提供备份。
七、免费版与限制小结
FAQ 关于"是否有免费版"的回答是:部署到 Demo 服务器是免费的,但需接受前述两条限制——速率限制(平均每 10 秒 10 次请求,排队超过 25 个请求即报错)与 100 MB 存储上限。因此:
- 学习、原型、开发阶段 → Demo 服务器(免费、零运维);
- 生产场景 → 自托管服务器或 Prisma Cloud 私有服务器(连接自备数据库,无内置限流)。
附:本主题相关仓库文档导航
- Prisma Cloud FAQ(本文档)
- Prisma 服务器总览:类型、Sandbox 限流、endpoint 行为、认证
- Demo Server 部署完整教程
- prisma login 命令参考
- prisma account 命令参考
- prisma.yml 完整配置参考(endpoint / secret / subscriptions 等)
- 自托管服务器部署教程:Digital Ocean(Docker Machine).md)
- CLI 登录命令源码实现
- CLI 部署命令源码(Workspace 处理逻辑)
赞
【免费下载链接】prisma1
💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated]
项目地址:
https://gitcode.com/gh_mirrors/pr/prisma1
点击查看 免费下载
相关推荐
ente/auth:免费开源的端到端加密2FA认证器,两步验证新手快速上手
llama.cpp 多模态实战:MiniCPM-V 2.6 的模型转换、量化与推理全流程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网硕互联帮助中心

评论前必须登录!
注册