Prisma CLI `prisma local stop` 命令详解:停止本地开发集群
2026/9/24 16:34:59 网站建设 项目流程
  • 后端
  • 数据库
  • GraphQL

【免费下载链接】prisma1

💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated]

项目地址:https://gitcode.com/gh_mirrors/pr/prisma1
点击查看免费下载

prisma local stop是 Prisma CLI 提供的本地开发集群生命周期管理命令之一,用于停止(关停)运行在本机的 Prisma 开发集群。本文以 Prisma 1.2 文档体系中 prisma-local-stop 命令参考 为主体,结合仓库内 CLI 源码与集群配置实现,完整讲解该命令的用法、flags、底层原理以及在新版本 CLI 中的替代方案,帮助你在本机开发环境中正确地启停 Prisma 服务。

命令概览:它做什么

prisma local stop用于停止本地开发集群(local development cluster)。在 Prisma 1.x 的本地开发模式下,本地集群是运行在 Docker 容器中的一组服务(Prisma 服务端 + 数据库),通过 Prisma CLI 的prisma local子命令族统一管理,包括startstopupgradenuke等操作。

prisma local start(启动集群,需安装 Docker)相对应,stop负责将当前处于运行状态的本地集群容器停止,从而释放本机资源。它是本地开发"启 → 停 → 升级 → 重置"生命周期中的常规一环。

使用方式与 Flags

prisma local stop的基本语法如下:

prisma local stop [flags]

该命令只支持一个可选 flag:

Flag简写说明
--name NAME-n指定要停止的集群实例名称(cluster instance name)

其中--name用于在多集群场景下精确定位目标集群实例。若不指定,命令默认作用于名为local的默认集群。

版本适用前提:本文档出自仓库中docs/1.2版本文档目录,对应的命令行为以 Prisma CLI 1.2 版本为准。在新版本 CLI 引擎(本仓库 CLI.ts)中,local:stoplocal子命令已被移除并给出替代指引,详见下文「版本演进」小节。

实战示例

停止默认集群local

不传任何参数时,命令停止名为local的默认集群实例:

prisma local stop

该示例对应文档中的默认场景:本地仅有一份开发集群,直接停止即可。

停止指定名称的集群mycluster

如果你通过prisma local start --name mycluster启动了多个本地集群实例,则停止时需显式指定名称:

prisma local stop --name mycluster

示例中mycluster是用户在启动集群时通过--name自定义的实例名,stop时使用完全相同的名称即可精确命中目标容器。

底层机制:从命令到 Docker 容器

prisma local系列命令的本质是对本机 Docker 环境的编排管理:CLI 根据集群实例名称定位对应的 Docker 容器/镜像,并对其执行启停操作。仓库中保留了本地集群的标准容器编排模板,即 init 命令内置的 docker-compose.yml,其结构清晰地展示了本地集群包含的两个核心服务:

  • prisma-db:基于mysql:5.7镜像的数据库容器,通过db-persistence卷持久化数据;
  • prisma-database:基于prismagraphql/prisma:1.1镜像的 Prisma 服务端容器,通过环境变量注入PORTSQL_CLIENT_*SQL_INTERNAL_*CLUSTER_ADDRESS等连接配置。

当执行prisma local stop时,CLI 会针对指定实例对应的上述容器执行停止操作;反之prisma local start则负责拉起容器。从源码结构看,CLI 在启动本地开发前还会校验本机是否已安装 docker-compose(见 dockerComposeInstalled.ts,通过执行docker-compose -v并解析版本号来判断),这印证了prisma local命令族对 Docker 工具链的强依赖。

集群实例与集群注册表(Cluster Registry)

--name指定的集群实例名与 Prisma CLI 的**集群注册表(cluster registry)**密切相关。根据仓库中的 Clusters Overview 文档说明,CLI 首次使用时会在用户主目录创建~/.prisma/目录,其中的config.yml即集群注册表,记录了所有可部署集群的元信息。

该路径与源码实现完全一致:Environment类在构造函数中将注册表路径固定为path.join(this.home, '.prisma/config.yml')(见 Environment.ts)。注册表内容大致如下:

clusters: 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"

每个条目的key即集群实例名(如localmycluster),对应Cluster模型中的namebaseUrlclusterSecretlocal等字段(见 Cluster.ts)。在prisma local start时,如果指定名称的实例此前不存在,命令会向集群注册表新增一条以该名称(如mycluster)为 key 的条目(见 prisma-local-start 文档 的 Note);prisma local stop --name mycluster正是针对注册表中已登记的这一实例执行停止。CLI 保存注册表时只序列化本地、非共享、非私有的集群条目(见 Environment.ts 中 getLocalClusterConfig),确保local等自建实例能被持久记录。

停止后的状态与后续操作

停止本地集群后,容器不再运行,占用的端口与内存随之释放;但注册表条目与数据卷(db-persistence)依然保留,因此再次执行prisma local start可以快速恢复同一实例继续开发。如果需要进一步操作,可以配合prisma local命令族中的其他子命令:

  • prisma local start:启动(或创建)本地集群实例;
  • prisma local upgrade:通过docker pull拉取最新 Docker 镜像并重启实例;
  • prisma local nuke:硬重置本地集群,会不可逆地清空集群内所有服务与数据,谨慎使用。

其中nukestop有着本质区别:stop仅停止容器、保留数据,随时可恢复;nuke则销毁容器与数据,相当于从零重建。

版本演进:1.7 之后改用 docker-compose

需要特别说明的是,prisma local命令族在 Prisma CLI 后续版本中被移除。本仓库的 CLI 引擎源码在 CLI.ts 中对locallocal:startlocal:stoplocal:upgradelocal:nukelocal:ps等命令 ID 统一抛出了CommandRemovedError,版本号为1.7,并明确提示:

You can use docker-compose directly to manage the state of a local server.

这意味着在 1.7 及之后版本的 CLI 中,直接执行prisma local stop会得到命令已被移除的报错,官方给出的替代方案是直接使用 docker-compose 管理本地服务器状态。仓库中prisma init生成的 docker-compose.yml 模板 即为该替代工作流的基础:开发者对生成的docker-compose.yml执行docker-compose up -d启动、docker-compose down/docker-compose stop停止,以此完成本地 Prisma 服务的启停管理(相关提示见 init.ts)。

小结

  • 在 Prisma CLI 1.2 中,prisma local stop用于停止本地开发集群,支持-n, --name指定实例名,默认停止名为local的集群;
  • 本地集群本质是 Docker 容器(Prisma 服务端 + MySQL),其元信息记录在~/.prisma/config.yml集群注册表中;
  • stop只停容器、保留数据,与nuke的销毁性重置有本质区别;
  • 在 1.7+ 版本的 CLI 中,该命令已被移除,请改用docker-compose管理本地服务器状态;
  • 使用前提:本机需安装 Docker(及 docker-compose),本地集群方可正常运行与停止。
  • 后端
  • 数据库
  • GraphQL

【免费下载链接】prisma1

💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated]

项目地址:https://gitcode.com/gh_mirrors/pr/prisma1
点击查看免费下载
上一篇:3分钟搞定B站缓存视频:m4s转MP4的终极免费工具指南
下一篇:解锁B站缓存视频的终极方案:m4s-converter技术解析与应用实践

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询