Supabase CLI快速入门:从零部署全栈应用的完整指南
你是否正在寻找一个开源、功能完备的后端即服务解决方案?Supabase CLI正是为现代开发者量身打造的全栈开发利器。通过这个强大的命令行工具,你可以在本地环境中高效管理数据库、开发云函数,并一键部署到云端。## 为什么选择Supabase CLI?Supabase CLI将复杂的后端开发简化为几个简单命令,让你专注于业务逻辑而非基础设施。无论你是个人开发者还是团队协作,都能获得一致、可靠
Supabase CLI快速入门:从零部署全栈应用的完整指南
【免费下载链接】cli Supabase CLI 项目地址: https://gitcode.com/GitHub_Trending/cli23/cli
你是否正在寻找一个开源、功能完备的后端即服务解决方案?Supabase CLI正是为现代开发者量身打造的全栈开发利器。通过这个强大的命令行工具,你可以在本地环境中高效管理数据库、开发云函数,并一键部署到云端。
为什么选择Supabase CLI?
Supabase CLI将复杂的后端开发简化为几个简单命令,让你专注于业务逻辑而非基础设施。无论你是个人开发者还是团队协作,都能获得一致、可靠的开发体验。
核心优势速览
| 功能特性 | 价值描述 | 重要性评级 |
|---|---|---|
| 本地开发环境 | 一键启动完整的Supabase服务栈 | ⭐⭐⭐⭐⭐ |
| 数据库版本控制 | 轻松管理数据库模式变更 | ⭐⭐⭐⭐⭐ |
| 边缘函数管理 | 快速开发部署无服务器函数 | ⭐⭐⭐⭐ |
| 类型安全开发 | 自动生成TypeScript类型定义 | ⭐⭐⭐⭐ |
| 团队协作支持 | 无缝的多人开发工作流 | ⭐⭐⭐ |
环境准备与快速安装
系统要求检查
在开始安装前,请确保你的系统满足以下要求:
- Docker Engine 20.10.0或更高版本
- Git版本控制系统
- 至少2GB可用内存
- 稳定的网络连接
多平台安装方案
NPM安装(推荐)
npm install supabase --save-dev
Homebrew安装(macOS/Linux)
brew install supabase/tap/supabase
源码编译安装
git clone https://gitcode.com/gh_mirrors/cli23/cli
cd cli
go mod download
go install .
安装验证
安装完成后,运行以下命令验证安装状态:
supabase --version
成功安装后,你将看到类似输出:supabase version 1.160.0
第一个项目实战演练
项目初始化步骤
创建并配置你的第一个Supabase项目:
# 创建项目目录
mkdir my-supabase-app
cd my-supabase-app
# 快速启动项目设置
supabase bootstrap
这个命令会引导你完成:
- 选择适合的项目模板
- 配置数据库连接参数
- 设置用户认证选项
- 初始化Git版本控制(可选)
本地服务启动
项目设置完成后,启动本地开发环境:
supabase start
首次运行需要下载Docker镜像,请耐心等待。成功启动后,你将获得完整的服务地址信息:
Started supabase local development setup.
API URL: http://localhost:54321
GraphQL URL: http://localhost:54321/graphql/v1
DB URL: postgresql://postgres:postgres@localhost:54322/postgres
Studio URL: http://localhost:54323
Inbucket URL: http://localhost:54324
JWT secret: <your-jwt-secret>
anon key: <your-anon-key>
service_role key: <your-service-role-key>
通过Studio URL访问Supabase Studio,这是一个直观的数据库管理界面。
数据库管理核心技巧
数据库连接方法
Supabase CLI提供多种数据库连接方式:
# 直接连接数据库
supabase db remote connect
# 执行SQL查询
supabase db sql "SELECT current_timestamp;"
# 运行SQL脚本文件
supabase db sql -f database/setup.sql
迁移文件创建与应用
数据库迁移是版本控制的关键:
# 创建新的迁移文件
supabase db new create_products_table
编辑生成的SQL文件:
-- 创建产品表
CREATE TABLE public.products (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name TEXT NOT NULL,
price DECIMAL(10,2),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- 启用行级安全策略
ALTER TABLE public.products ENABLE ROW LEVEL SECURITY;
-- 创建访问策略
CREATE POLICY "允许认证用户查看产品" ON public.products
FOR SELECT USING (auth.role() = 'authenticated');
应用迁移到数据库:
# 推送所有未应用的迁移
supabase db push
# 查看迁移历史记录
supabase db migration list
数据备份与恢复
# 创建数据库备份
supabase backups create
# 列出可用备份
supabase backups list
# 从备份恢复数据
supabase backups restore <backup-id>
云函数开发全流程
创建边缘函数
开发基于Deno的无服务器函数:
# 新建函数
supabase functions new user-registration
编辑函数逻辑:
// supabase/functions/user-registration/index.ts
Deno.serve(async (req) => {
const { email, username } = await req.json();
// 业务逻辑处理
const result = {
success: true,
user_id: generateUserId(),
message: `欢迎 ${username}!`
};
return new Response(
JSON.stringify(result),
{ headers: { "Content-Type": "application/json" } }
);
});
本地测试与调试
# 启动本地函数服务器
supabase functions serve user-registration --no-verify-jwt
使用API工具测试函数:
curl -X POST 'http://localhost:54321/functions/v1/user-registration' \
-H 'Content-Type: application/json' \
-d '{"email":"user@example.com","username":"newuser"}'
云端部署操作
测试通过后,部署到生产环境:
# 部署单个函数
supabase functions deploy user-registration
# 批量部署所有函数
supabase functions deploy --all
# 带环境变量部署
supabase functions deploy user-registration --env-file .env.prod
类型安全开发实践
自动类型生成
从数据库模式生成TypeScript类型:
supabase gen types typescript --local > src/types/database.ts
在项目中使用类型提示:
import { Database } from '../src/types/database';
// 创建类型化客户端
const supabase = createClient<Database>(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY
);
// 享受完整的类型安全
const getProducts = async () => {
const { data, error } = await supabase
.from('products')
.select('id, name, price')
.order('created_at', { ascending: false });
if (error) {
console.error('查询失败:', error.message);
return [];
}
return data;
};
团队协作最佳实践
项目链接与同步
# 登录Supabase账户
supabase login
# 连接到云端项目
supabase link --project-ref <your-project-reference>
项目引用可在Supabase项目控制台的设置 > API页面找到。
变更部署流程
# 推送本地变更到云端
supabase db push
# 拉取云端最新变更
supabase db pull
常见问题快速排查
本地环境问题解决
| 问题现象 | 解决方案 |
|---|---|
| 端口占用冲突 | 使用--port参数指定新端口:supabase start --port 55000 |
| Docker镜像下载缓慢 | 配置国内镜像源或优化网络连接 |
| 服务启动异常 | 执行supabase stop后重新启动 |
数据库迁移冲突处理
| 冲突类型 | 解决方法 |
|---|---|
| 迁移文件顺序冲突 | 使用supabase db diff生成解决冲突的迁移文件 |
云函数部署优化
| 部署问题 | 优化策略 |
|---|---|
| 部署超时 | 适当增加函数内存分配和超时时间设置 |
| 依赖包缺失 | 使用import_map.json统一管理函数依赖关系 |
| 权限配置错误 | 检查函数服务角色权限,确保资源访问权限充足 |
进阶学习资源推荐
官方文档资源
- 完整命令参考:docs/
- 配置说明文档:docs/supabase/config/
源码与示例
总结与行动指南
通过本指南,你已经掌握了Supabase CLI的核心使用方法。现在可以:
- 使用
supabase start启动本地开发环境 - 在Supabase Studio中设计数据库结构
- 使用
supabase db new管理数据库版本变更 - 通过
supabase functions new开发边缘计算函数 - 使用
supabase functions serve进行本地测试验证 - 提交代码到版本控制系统
- 执行
supabase db push和supabase functions deploy部署应用 - 利用监控工具和日志系统保障应用稳定运行
Supabase CLI让全栈开发变得简单高效,立即开始你的第一个项目,体验现代后端开发的无限可能!
【免费下载链接】cli Supabase CLI 项目地址: https://gitcode.com/GitHub_Trending/cli23/cli
更多推荐



所有评论(0)