【免费下载链接】prisma1
💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated]
项目地址:
https://gitcode.com/gh_mirrors/pr/prisma1
点击查看 免费下载
Prisma 的**自托管服务器(Self-hosted Prisma Server)**与本地开发环境的整套基础设施完全建立在 Docker 之上:官方通过 prismagraphql/prisma 镜像打包 Prisma 服务端,通过与 mysql / postgres 等数据库镜像组合,用 docker-compose.yml 一键拉起「Prisma + 数据库」集群,从而以 localhost:4466 暴露 Prisma API 端点。本指南以 Prisma 1.14 为基准,系统讲解 Docker Compose 文件的完整写法、PRISMA_CONFIG 中每个配置项的作用,以及日志查看、容器校验与数据重置等日常运维手段。读完本文,你将能够独立编写、部署、调试一套基于 Docker 的自托管 Prisma 服务器,并具备把它对接 MySQL、PostgreSQL 等真实数据库的能力。
Docker 基础设施概览:docker-compose 管理 Prisma 集群
自托管 Prisma 服务器(包括本地环境)的基础设施完全构建在 Docker 之上,日常管理中用到两套工具:
- Docker CLI:直接操作单个镜像与容器;
- Docker Compose CLI:以「服务」为单位,编排由 Prisma 容器 + 数据库容器组成的整套集群。
最核心的四条命令如下:
| docker-compose up -d | 启动一套新的 Prisma 服务器,之后即可向它部署你的 Prisma API(-d 表示后台守护运行) |
| docker-compose stop | 停止 Prisma 服务器(容器保留,可再次启动) |
| docker-compose pull | 从 Docker Hub 拉取最新的 Prisma 镜像 |
| docker logs | 查看 Prisma 服务器的运行日志(排查问题最常用的手段) |
需要特别说明的是:以上命令默认假定你当前位于存放 Prisma 服务器 docker-compose.yml 的目录中。如果你的 compose 文件在别的目录,要么先切换到该目录再执行,要么直接使用 Docker CLI 来管理镜像与容器。
Docker 镜像:Prisma 镜像 + 数据库镜像的组合模型
一套 Prisma 服务器由以下 Docker 镜像组成:
- Prisma 服务端:prismagraphql/prisma(本文档中出现的 prismagraphlq/prisma 为原始笔误,官方正确镜像名为 prismagraphql/prisma);
- 数据库:mysql 或 postgres(二选一)。
Prisma 镜像为必需项,数据库镜像恰好选一个(Prisma 1.14 的服务器一次只能连接一个数据库;文档中已注明在未来的 Prisma 版本中才会支持一个 Prisma 服务器连接多个数据库)。
这一点在仓库的实际部署脚本中也有印证:查看 server/docker-compose/mysql/prisma.yml 与 server/docker-compose/postgres/prisma.yml,二者都是「一份 prisma 配置 + 一个 databases.default 数据库」,结构完全对应「一个 Prisma 镜像 + 一个数据库镜像」的模型。
使用 Docker Compose 配置 Prisma 服务器
完整 docker-compose.yml(Prisma 1.14 版)
以下是 Prisma 1.14 官方推荐的 docker-compose.yml 完整内容:
version: '3'
services:
prisma:
image: prismagraphql/prisma:1.14
restart: always
ports:
– "4466:4466"
environment:
PRISMA_CONFIG: |
managementApiSecret: my-server-secret-123
port: 4466
databases:
default:
connector: mysql # or `postgres`
migrations: true
host: db
port: 3306 # or `5432` for `postgres`
user: root
password: prisma
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: prisma
volumes:
– mysql:/var/lib/mysql
volumes:
mysql: ~
这份文件定义了两个服务:
- prisma:运行 Prisma 服务端的容器,通过环境变量 PRISMA_CONFIG 接收全部服务端配置与数据库连接信息;
- db:提供底层存储的 MySQL(或 PostgreSQL)容器,通过卷 mysql 持久化数据。
prisma 服务详解
prisma 服务基于 prismagraphql/prisma 镜像,核心属性如下:
- ports:值 "4466:4466" 表示把容器内 4466 端口映射到宿主机的 4466 端口,映射后即可通过 http://localhost:4466 访问 Prisma 服务器。
- environment.PRISMA_CONFIG:唯一需要设置的环境变量,它是一个多行 YAML 字符串,集中承载服务端配置与数据库连接信息,各配置项含义如下:
| managementApiSecret | CLI 向 Prisma 服务器发起认证请求时需要携带的密钥(对称认证,即单密钥方案)。备选方案是使用 legacySecret 进行非对称认证。该密钥在仓库 CLI 的默认模板中同样以注释形式出现——见 cli/packages/prisma-cli-core/src/utils/util.ts 中的 defaultDockerCompose,注释明确写道「取消注释并设置环境变量 PRISMA_MANAGEMENT_API_SECRET=my-secret 即可激活集群安全」 |
| port | Prisma 服务器自身监听的端口(默认 4466) |
| databases | 声明 Prisma 服务器要连接的数据库(当前版本只能连接一个) |
其中 databases.default 下还有一组子配置:
- default.connector:指定使用的 Prisma 数据库连接器(即 mysql 或 postgres);
- default.active:设为 true 表示使用**主动(active)**连接器(与被动 passive 连接器相对);
- default.host:数据库所在主机;
- default.port:数据库服务监听的端口;
- default.user 与 default.password:连接数据库所需的认证凭据。
db 服务详解
示例中的 db 服务基于 mysql 镜像,也可以换成 postgres 镜像。关键约束:db 服务中通过 MYSQL_ROOT_PASSWORD(或 MYSQL_USER 等)设置的环境变量,必须与 prisma 服务 PRISMA_CONFIG 中的 default.user / default.password 保持一致,否则 Prisma 服务器无法通过数据库认证——这是整套配置中极易出错、也最容易被忽略的联动点。
仓库内真实部署配置参考
仓库 server/docker-compose/ 目录保存了面向不同数据库的真实服务端配置,可直接对照学习:
- MySQL(server/docker-compose/mysql/prisma.yml):connector: mysql,host: 127.0.0.1,port: 3306,user: root,password: prisma,并额外启用了 rawAccess: true;配套的 server/docker-compose/mysql/dev-mysql.yml 使用 mysql:5.6 镜像并把端口绑定为 127.0.0.1:3306:3306;
- PostgreSQL(server/docker-compose/postgres/prisma.yml):connector: postgres,port: 5432,user: postgres;
- MongoDB(server/docker-compose/mongo/prisma.yml):Mongo 连接器不使用 host/port/user 拆分字段,而是直接给出完整 uri:mongodb://prisma:prisma@127.0.0.1:27017/?authSource=admin&ssl=false;
- SQLite(server/docker-compose/sqlite/prisma.yml):标记了 prototype: true,属于原型验证场景。
此外,cli/packages/prisma-generate-schema/scripts/mysql/docker-compose.yml 展示了一个更新版本(prismagraphql/prisma:1.33-alpha)的完整模板,其中在 databases.default 下同时出现 migrations: true 与 rawAccess: true,并把 managementApiSecret 以注释形式预留给用户启用集群安全——这印证了「PRISMA_CONFIG 中配置项随版本逐步演进」的事实,不同 Prisma 版本下字段的可用性可能略有差异,部署时请以目标版本的官方镜像说明为准。
调试与故障排查
当需要对 Prisma 集群内部状态进行排查时,首选手段是读取对应 Docker 容器的日志。
查看 Docker 日志
需要更完整日志时,直接查看运行中容器的原始日志:
docker-compose logs
校验容器是否在运行
如果收到 Error response from daemon: No such container 之类的报错,说明容器可能未启动或被移除,可用 docker ps 校验:
docker ps
正常输出形如:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2b799c529e73 prismagraphql/prisma:1.7 "/bin/sh -c /app/sta…" 17 hours ago Up 7 hours 0.0.0.0:4466->4466/tcp myapp_prisma_1
757dfba212f7 mysql:5.7 "docker-entrypoint.s…" 17 hours ago Up 7 hours 3306/tcp prisma-db
可以看到 prismagraphql/prisma 容器把端口映射为 0.0.0.0:4466->4466/tcp,而 mysql:5.7 容器在集群内部暴露 3306 端口——与上文「Prisma 容器对外、数据库容器对内」的端口设计完全一致。
硬重置 Docker 环境
如果本地 Prisma 集群陷入无法恢复的状态,最直接的办法是彻底重置。注意:以下命令会清空本地 Prisma 服务器中的所有数据(包括已部署的 Prisma API):
docker-compose kill
docker-compose down
docker-compose up -d
三步的含义分别是:终止所有容器 → 拆除容器与默认网络 → 按 docker-compose.yml 重新拉起全新集群。这是「从零恢复」的兜底手段,务必在确认数据可以丢弃后再执行。
小结
自托管 Prisma 1.14 服务器的核心是一份 docker-compose.yml:prismagraphql/prisma 镜像通过 PRISMA_CONFIG 环境变量接收 managementApiSecret、port、databases.default 等全部配置,并与唯一一个 mysql / postgres 数据库容器组合成可用的服务集群;容器间通过 Docker 网络互连,对外只需暴露 4466 端口。运维层面,docker-compose logs 看日志、docker ps 验容器、kill + down + up -d 做硬重置,即可覆盖绝大多数日常场景。若需对接 MongoDB 或 SQLite,可参考 server/docker-compose/mongo/prisma.yml 与 server/docker-compose/sqlite/prisma.yml 中 uri 直连与 prototype 模式的写法,按同样的结构改造 compose 文件即可。
赞
【免费下载链接】prisma1
💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated]
项目地址:
https://gitcode.com/gh_mirrors/pr/prisma1
点击查看 免费下载
相关推荐
如何快速上手LiteLoaderQQNT:QQNT插件加载器的完整指南
Navicat无限试用终极指南:5步永久解决14天限制
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网硕互联帮助中心






评论前必须登录!
注册