Prisma 本地集群升级指南:`prisma local upgrade` 命令与 Docker 镜像管理

发布时间:2026/9/24 15:49:55
Prisma 本地集群升级指南:`prisma local upgrade` 命令与 Docker 镜像管理 Prisma 本地集群升级指南prisma local upgrade命令与 Docker 镜像管理【免费下载链接】prisma1 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL MongoDB) [deprecated]项目地址: https://gitcode.com/gh_mirrors/pr/prisma1prisma local upgrade是 Prisma CLI 1.4 中用于升级本地开发集群的命令它会通过docker pull拉取最新的 Prisma 官方 Docker 镜像并针对指定的集群实例执行启动动作让本地开发环境始终与最新版本保持一致。本文以该命令为核心讲解其用法、参数、底层原理并结合当前仓库源码说明集群注册表、Docker 镜像版本与后续版本演进帮助你完整掌握本地集群的升级与维护流程。命令概览为什么需要升级本地集群在 Prisma 中服务被部署到所谓的cluster集群——即 Prisma 服务的运行时环境。对于本地开发Prisma CLI 会通过 Docker 镜像和容器来管理本地集群。由于 Prisma 服务端在持续迭代本地运行的镜像可能是旧版本此时就需要用prisma local upgrade拉取最新镜像完成升级。版本前提本文命令基于 docs 1.4 版本对应仓库docs/1.4目录。从 CLI 引擎源码可见local系列命令在后续版本1.7 起已被移除改用docker-compose直接管理本地服务详见下文「版本演进与替代方案」一节。升级命令的核心行为引用自 03-prisma-local-upgrade.md 原文描述使用docker pull下载本地集群对应的 最新 Docker 镜像即prismagraphql/prisma官方镜像随后针对指定的集群实例调用docker up即拉起/更新对应的容器实例。命令用法与参数Usageprisma local upgrade [flags]该命令属于prisma local子命令族同族还有local start、local stop、local nuke全部用于管理本地开发集群的生命周期。FlagsFlag简写类型说明--name-nstring集群实例的名称cluster instance name--name用于指定要升级的本地集群实例。若不指定命令默认操作名为local的默认集群。从 Environment.ts 的clusterByName实现可见CLI 正是通过集群名称在集群注册表中查找对应实例若名称不存在且开启了throws参数则会抛出ClusterNotFound错误。参数解析说明--name指向的集群实例名称对应的是**集群注册表cluster registry**中的键。注册表文件位于~/.prisma/config.ymlCLI 首次使用时自动创建见 Environment.ts 中rcPath path.join(this.home, .prisma/config.yml)其典型结构如下示例来自 05-Clusters/01-Overview.mdclusters: local: host: http://localhost:4466 clusterSecret: -----BEGIN RSA PRIVATE KEY----- [ long key omitted ] -----END RSA PRIVATE KEY-----\r\n digital-ocean: host: http://45.55.177.154:4466 clusterSecret: -----BEGIN RSA PRIVATE KEY----- [ long key omitted ] -----END RSA PRIVATE KEY-----\r\n因此--name mycluster实际对应注册表中clusters.mycluster这一条目。若该条目之前不存在则会在执行prisma local start时被自动补充见 01-prisma-local-start.md 的说明。实战示例升级默认集群local不指定--name时默认升级名为local的集群prisma local upgrade升级指定集群mycluster使用--name指定目标集群实例prisma local upgrade --name mycluster完整工作流建议本地开发中升级通常与启动配合使用——先升级镜像再启动/重启集群# 1. 拉取最新 Docker 镜像并升级集群 prisma local upgrade --name mycluster # 2. 启动或重启本地集群 prisma local start --name mycluster若集群状态异常可先用prisma local stop --name mycluster停止见 02-prisma-local-stop.md升级后重新启动如需彻底重置注意会不可逆地清空本地集群中的所有服务与数据可执行prisma local nuke见 06-prisma-local-nuke.md。底层原理命令背后的集群机制Docker 镜像与容器编排升级命令本质上是两层操作的组合docker pull负责拉取最新版本的 Prisma 镜像随后对指定集群实例执行docker up。本地集群对应的官方镜像为prismagraphql/prisma仓库中的prisma init脚手架模板给出了完整的镜像与服务编排参考见 docker-compose.ymlversion: 3 services: prisma-db: container_name: prisma-db image: mysql:5.7 ... prisma-database: image: prismagraphql/prisma:1.1 restart: always ports: - 0.0.0.0:${PORT}:${PORT} environment: PORT: $PORT SQL_CLIENT_HOST: $SQL_CLIENT_HOST SQL_INTERNAL_HOST: $SQL_INTERNAL_HOST CLUSTER_ADDRESS: $CLUSTER_ADDRESS CLUSTER_PUBLIC_KEY: $CLUSTER_PUBLIC_KEY ...可以看到本地集群由「数据库容器如 MySQL 5.7 Prisma 服务容器prismagraphql/prisma」组成Prisma 容器通过SQL_CLIENT_*、SQL_INTERNAL_*、CLUSTER_ADDRESS、CLUSTER_PUBLIC_KEY等环境变量与底层数据库及集群密钥对接。prisma init在初始化本地项目时会把这份docker-compose.yml写入项目目录见 init.ts并提示用户通过docker-compose up -d启动 Prisma 服务——这就是升级命令中docker up所作用的编排对象。集群实例在源码中的建模从源码结构看本地集群在 CLI 内部被建模为Cluster类实例见 Cluster.ts其构造参数包括name集群名称即--name传入的值baseUrl集群端点地址构造时会去除尾部斜杠以避免双斜杠clusterSecret集群密钥用于生成本地集群访问令牌local布尔标志默认值为true用于标记本地集群。其中getLocalToken()Cluster.ts使用clusterSecretRS256或环境变量PRISMA_MANAGEMENT_API_SECRETHS256签发集群令牌用于对集群的后续操作请求如prisma deploy进行认证。升级命令定位集群实例时正是基于名称在注册表中匹配到对应的Cluster对象并读取其配置。集群注册表的读写集群注册表~/.prisma/config.yml由 Environment.ts 统一管理loadGlobalRC读取文件并解析 YAMLsaveGlobalRC将本地集群配置写回文件getLocalClusterConfig会过滤掉共享集群与私有集群仅保留本地自定义集群的host与clusterSecret。这意味着prisma local upgrade --name mycluster操作的目标实例其端点与密钥信息均来自该注册表条目。版本演进与替代方案需要特别指出的是prisma local upgrade等local系列命令并非长期稳定存在。在 CLI 引擎源码 CLI.ts 中可以看到当用户输入local、local:up,local:down,local:start,local:stop,local:upgrade,local:nuke,local:ps时会抛出CommandRemovedError(1.7, ...)并给出明确提示You can use docker-compose directly to manage the state of a local server.也就是说从 1.7 版本起上述命令被正式移除官方建议直接使用docker-compose管理本地服务器的状态例如# 拉取最新镜像 docker-compose pull # 重建并启动本地集群对应升级后的启动动作 docker-compose up -d因此本文档docs 1.4所描述的prisma local upgrade适用于 1.4 及更早的 CLI 版本若你使用的 CLI 版本为 1.7 及以上请改用docker-compose pulldocker-compose up -d完成等效的镜像升级与集群启动。这一演进也解释了为什么当前仓库的prisma-cli-core源码中不再包含local upgrade的实现文件——命令已被设计性地移除相关行为迁移到 Docker Compose 生态。延伸阅读prisma local start启动本地开发集群需要 Docker首次使用会自动在集群注册表中登记集群条目prisma local stop停止本地开发集群prisma local nuke硬重置本地集群会清空所有数据请谨慎使用Clusters 概览集群注册表、集群类型与认证机制的完整说明相关源码CLI 入口Node 版本校验与命令启动、CLI 引擎命令分发与 local 命令移除逻辑、Environment.ts集群注册表读写、Cluster.ts集群建模与令牌生成、docker-compose 模板本地集群镜像编排【免费下载链接】prisma1 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL MongoDB) [deprecated]项目地址: https://gitcode.com/gh_mirrors/pr/prisma1创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考