核心用法
Supabase Ops 是一款面向 Next.js 项目的专业数据库运维技能,通过 Supabase CLI 自动化管理 PostgreSQL 迁移、类型生成、RLS 策略配置及 Edge Functions 部署。其核心工作流遵循"规划-执行-验证-提交"的严格协议,确保每一次 schema 变更都可追溯、可回滚。
关键能力矩阵
| 功能 | 实现方式 | 安全机制 |
|------|---------|---------|
| 迁移管理 | `supabase/migrations/` 时间戳命名规范 | 强制 dry-run 预览、破坏性操作确认 |
| RLS 策略 | 预定义模板(owner/team/public 模式) | 强制启用 RLS 检查 |
| 类型生成 | `supabase gen types typescript` | 自动同步到 `src/lib/supabase/types.ts` |
| Edge Functions | Deno Runtime + JS 模板 | Service Role Key 仅用于服务端 |
强制性规划协议
所有操作前必须完成六步规划:需求理解 → 现状调查 → 执行计划 → 风险识别 → 顺序执行 → 变更总结。这一设计将人为失误降至最低,尤其针对 DROP、ALTER COLUMN 等破坏性操作要求备份迁移与用户显式确认。
显著优点
1. 企业级安全范式:强制 RLS、禁止客户端使用 Service Role Key、timestamptz 标准化等规则内置,避免常见配置错误。
2. 类型安全闭环:每次迁移后自动更新 TypeScript 类型,消除前后端类型漂移风险。
3. 生产环境防护:db reset 生产阻断、dry-run 强制预览、破坏性操作分级确认,三层防护机制。
4. 模式化效率:提供 owner-only、team-based、public-read-owner-write 三类 RLS 模板,覆盖 90% 业务场景。
局限性与风险
- CLI 依赖深度:需本地安装 Supabase CLI 并保持版本同步,容器化/CI 环境需额外配置。
- Deno 生态壁垒:Edge Functions 强制 Deno Runtime,与 Node.js 包生态存在兼容成本。
- 迁移冲突处理:多人协作时若绕过 CLI 直接修改数据库,可能导致迁移状态不一致,需严格 Git 工作流配合。
- Service Role Key 泄露风险:虽然规则禁止客户端使用,但开发过程中仍需警惕
.env文件意外提交。
适用人群
- 使用 Next.js + Supabase 的全栈开发者
- 需要严格数据库变更审计的中小型团队
- 追求 TypeScript 端到端类型安全的项目
常规风险提示
S 级(高):SUPABASE_SERVICE_ROLE_KEY 拥有数据库超级权限,一旦泄露可导致全表数据暴露。技能虽通过 CLI 隔离读取 .env,但开发者仍需确保密钥存储安全(如 Vault、CI Secrets)。A 级:db reset 在开发环境会清空数据,生产环境虽被阻断,但误操作 staging 环境仍可能造成数据丢失。