
Supabase CLI 实战本地跑通数据库、函数和类型生成的完整链路【免费下载链接】cliSupabase CLI. Manage postgres migrations, run Supabase locally, deploy edge functions. Postgres backups. Generating types from your database schema.项目地址: https://gitcode.com/GitHub_Trending/cli23/cliSupabase CLI 把 Supabase 平台的能力搬进终端在你自己的机器上启动完整的本地服务栈Postgres、Auth、Realtime、Storage 与 Edge Functions管理数据库迁移部署边缘函数并根据表结构生成 TypeScript 类型。对想在本地写完代码再推送云端的开发者来说它就是连接本地工程与远程项目的那座桥。什么情况下值得用 Supabase CLI你希望在没有连网控制台的情况下调试数据库变更先在本地验证迁移再上线。你需要把同一个工作区里的数据库、函数、密钥管理起来而不是各写各的脚本。你在维护一个 TypeScript 项目希望数据库表结构变化时客户端类型能跟着自动更新。多人协作时希望本地环境与线上项目通过supabase link关联后保持一致。安装前检查依赖本地栈依赖容器运行时先确认两点Docker Engine 已安装并能正常运行docker ps不报错。机器至少 7GB 可用内存——启动全部服务时官方给出的建议值。包管理方式任选其一npm 最为通用npm install -D supabasemacOS 和 Linux 也可以用 Homebrewbrew install supabase/tap/supabaseWindows 上可以用 Scoopscoop install supabase。装完用supabase --version确认输出版本号即可。初始化工作区并启动本地服务栈在空目录里执行初始化会生成supabase/config.toml这个文件描述本地项目的全部配置supabase init supabase startstart会拉起 Postgres、Auth、Realtime、Storage、Edge Functions 等容器并自动做健康检查。不想启动某些服务时可以用-x排除比如-x gotrue,imgproxy。启动完成后运行supabase status查看各项服务的状态。如果项目已经有supabase目录结构想看它到底生成了什么直接翻目录即可config.toml之外migrations、functions、tests等目录都挂在supabase/下。想从零脚手架一个带模板的项目还可以直接跑supabase bootstrap它会替你搭好工作区骨架。用迁移管理一张用户表建表这件事建议走迁移文件而不是手工连库执行 SQL。以创建profiles表为例supabase migration new create_profiles在supabase/migrations/下生成的 SQL 文件中写入建表语句并顺手打开行级安全create table public.profiles ( id uuid references auth.users primary key, full_name text, created_at timestamptz default now() ); alter table public.profiles enable row level security;然后让本地库跟上迁移supabase db resetdb reset会重建本地库并按序应用所有迁移和种子文件。迁移写好后想对比本地与目标的差异用supabase db diff确认无误再推送supabase db push。日常排查时supabase db --help能列出该子命令下所有可用的操作。创建、测试并部署一个 Edge Function函数是 TypeScript 写的无服务器代码运行在 Deno 兼容的边缘运行时上冷启动快、无需包管理。以hello-world为例supabase functions new hello-world这会生成函数目录和入口文件。本地跑起来看看响应是否符合预期supabase functions serve hello-world终端会输出本地访问地址用 curl 打一下确认能拿到 JSON 响应。测试通过后部署到远端supabase functions deploy hello-world如果函数需要环境变量部署时可以用--env-file指向一个.env文件避免把密钥硬编码进代码。让类型跟着数据库走表结构一变客户端类型就过期这是最常见的隐性成本。Supabase CLI 可以直接从库结构反向生成类型supabase gen types --local database.types.ts--local从本地库读取结构--linked则从关联的远程项目读取。把生成的文件提交进仓库supabase-js客户端就能基于它做完整的类型检查。关联远程项目并推送变更本地开发收敛后把改动带上线分三步supabase login supabase link --project-ref 你的项目ref supabase db pushlogin需要个人访问令牌凭证会存进系统钥匙串不可用时写到本地配置文件。CI 环境里可以跳过登录直接用SUPABASE_ACCESS_TOKEN环境变量注入。link之后push、gen types --linked这类命令就知道该操作哪个项目。函数部署同理走supabase functions deploy即可。常见卡点排查supabase start卡住或超时首次运行要拉取多个镜像耐心等待若健康检查失败先看 Docker 是否正常运行必要时supabase stop后重试也可临时用--ignore-health-check跳过检查排查。内存不足导致容器反复重启全部服务对内存不友好用-x排除掉你暂时用不到的服务如imgproxy能明显缓解。db reset后数据全没了这是预期行为——它会重建本地库。想保留某些数据先supabase db dump导出再重置后导入回去。找不到项目 ref 或权限不足ref 在控制台的项目设置页可以复制令牌权限不够时回到账户的令牌管理页重新生成。不知道某条命令有哪些参数任何子命令加--help都能列出参数与示例比如supabase functions deploy --help。接下来可以看什么仓库内的文档目录值得一读apps/cli/docs/下按子命令拆分了start.md、status.md、functions.md等说明能覆盖命令行手册里的大部分细节。想深入本地栈的架构可以参考packages/stack的源码和packages/config中关于配置 schema 的定义。把init → start → migration → functions deploy → gen types这条链路跑通之后剩下的就是按你项目的节奏迭代了。【免费下载链接】cliSupabase CLI. Manage postgres migrations, run Supabase locally, deploy edge functions. Postgres backups. Generating types from your database schema.项目地址: https://gitcode.com/GitHub_Trending/cli23/cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考