每个 agent 一个本地 Supabase 项目,无论是否使用 Docker

每个 agent 一个本地 Supabase 项目,无论是否使用 Docker

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

Supabase CLI v2.119.0 推出实验性功能:无需 Docker,即可在单机运行多个本地项目,每个 git worktree 独立运行数据库,启动仅需数秒,内存占用减少 89%。原生运行时支持全部 13 项服务,适用于无容器环境的沙箱和 CI。远程分支创建速度提升近 5 倍,并自动继承项目配置。

🔎

延伸解读

多项目并行:为每个 agent 分配独立数据库

文章建议为每个编码 agent 创建独立的 git worktree,并在其中运行 supabase start,从而让每个 agent 拥有自己的 Postgres、Storage、Edge Functions 和 MCP 服务器。CLI 会自动选择并记住端口,避免手动协调项目 ID 和端口。这样,一个 agent 执行 supabase db reset 不会影响另一个 agent 的测试。agent 应通过 supabase start --output-format json 读取 URL 和密钥,而不是假

原生运行时:无 Docker 环境下的可行方案

原生运行时将全部 13 项 Supabase 服务作为普通进程运行,版本与 Docker 镜像一致,并包含 pgvector 等完整 Postgres 扩展。它适用于没有容器引擎的托管沙箱和 CI runner,支持 Linux(amd64/arm64,glibc 2.35+)和 macOS 14+(Apple silicon)。当 Docker 不可用时 CLI 会自动选择原生运行时,也可通过 --runtime native 显式指定。但 Docker 仍是默认选项,且在单台笔记本上运行多个项目时更合适,因为每

性能提升:启动更快、内存占用更低

根据文章中的测量数据,原生运行时下启动项目(缓存工件)仅需 3.9 秒,比默认引擎的 37 秒快 90%;空闲内存占用为 290 MiB,比默认引擎的 2.6 GiB 减少 89%。这意味着九个空闲项目的内存占用才相当于过去一个项目。远程分支创建速度也大幅提升:中位数从 102 秒降至 21 秒(4.8 倍),95 分位从 7.6 分钟降至 41 秒(11 倍)。这些改进使每个 worktree 一个项目的做法在笔记本上变得实际可行。

实验性功能:启用方式与注意事项

多项目支持和原生运行时在 CLI v2.119.0 中作为实验性功能提供,需通过环境变量 SUPABASE_EXPERIMENTAL_STACK=1 或在 supabase/config.toml 的 [experimental] 下添加 stack = true 来启用。对于现有应用,需遵循端口移除清单。实验性引擎的数据与现有本地项目分开存储,其标志和输出仍可能变化,因此在迁移工作流前应阅读差异和限制。远程分支继承基础项目配置的功能已对所有项目开放,无需额外开启。

❓

Q&A

Supabase CLI v2.119.0 的实验性功能是什么?

该版本推出了无需 Docker 即可在单机运行多个本地项目的实验性功能,每个 git worktree 可独立运行数据库,启动仅需数秒,内存占用减少 89%。

如何为每个 coding agent 配置独立的 Supabase 本地项目?

为每个 agent 创建一个 git worktree,并在每个 worktree 中运行 supabase start。例如:git worktree add ../app-billing -b billing,然后 cd ../app-billing && supabase start。每个 worktree 会获得独立的 Postgres、Storage、Edge Functions 和 MCP 服务器,端口由 CLI 自动选择并记忆。

Supabase 原生运行时(native runtime)支持哪些平台?

原生运行时支持 Linux(amd64 和 arm64,glibc 2.35 或更高版本)以及 macOS 14 或更高版本的 Apple silicon。

使用原生运行时相比 Docker 运行时有哪些性能优势?

原生运行时启动项目仅需 3.9 秒(比默认引擎快 90%),重启仅需 1.4 秒(快 96%),首次启动 16 秒(快 82%),下载大小 360 MB(小 81%),空闲内存占用 290 MiB(减少 89%)。

远程分支创建速度提升了多少?

远程分支创建速度提升近 5 倍,中位数从 102 秒降至 21 秒(4.8 倍),95 分位数从 7.6 分钟降至 41 秒(11 倍)。

如何启用实验性引擎?

更新到 CLI v2.119.0 或更高版本。对于新应用,运行 SUPABASE_EXPERIMENTAL_STACK=1 supabase init;对于现有应用,在 supabase/config.toml 的 [experimental] 下添加 stack = true,并遵循端口移除清单。提交该文件以便每个 worktree 都获得设置。

🏷️

标签

➡️

继续阅读