news 2026/4/16 12:52:51

Supabase CLI快速入门:从零部署全栈应用的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Supabase CLI快速入门:从零部署全栈应用的完整指南

Supabase CLI快速入门:从零部署全栈应用的完整指南

【免费下载链接】cliSupabase CLI项目地址: https://gitcode.com/gh_mirrors/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

这个命令会引导你完成:

  1. 选择适合的项目模板
  2. 配置数据库连接参数
  3. 设置用户认证选项
  4. 初始化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/

源码与示例

  • CLI工具源码:internal/
  • 功能实现示例:examples/

总结与行动指南

通过本指南,你已经掌握了Supabase CLI的核心使用方法。现在可以:

  1. 使用supabase start启动本地开发环境
  2. 在Supabase Studio中设计数据库结构
  3. 使用supabase db new管理数据库版本变更
  4. 通过supabase functions new开发边缘计算函数
  5. 使用supabase functions serve进行本地测试验证
  6. 提交代码到版本控制系统
  7. 执行supabase db pushsupabase functions deploy部署应用
  8. 利用监控工具和日志系统保障应用稳定运行

Supabase CLI让全栈开发变得简单高效,立即开始你的第一个项目,体验现代后端开发的无限可能!

【免费下载链接】cliSupabase CLI项目地址: https://gitcode.com/gh_mirrors/cli23/cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 2:39:33

B站视频下载新选择:bilidown全方位使用指南

B站视频下载新选择&#xff1a;bilidown全方位使用指南 【免费下载链接】bilidown 哔哩哔哩视频解析下载工具&#xff0c;支持 8K 视频、Hi-Res 音频、杜比视界下载、批量解析&#xff0c;可扫码登录&#xff0c;常驻托盘。 项目地址: https://gitcode.com/gh_mirrors/bilid/…

作者头像 李华
网站建设 2026/4/12 18:35:06

sandsifter完整教程:掌握x86处理器模糊测试核心技术

sandsifter作为一款专业的x86处理器模糊测试工具&#xff0c;通过系统化生成机器代码并监控执行异常&#xff0c;帮助安全研究人员和硬件工程师发现隐藏指令和硬件漏洞。本教程将带你深入理解这一强大工具的工作原理和应用方法。 【免费下载链接】sandsifter The x86 processor…

作者头像 李华
网站建设 2026/4/16 12:33:22

Boop游戏文件共享工具:让安装游戏变得像聊天一样简单

Boop游戏文件共享工具&#xff1a;让安装游戏变得像聊天一样简单 【免费下载链接】Boop GUI for network install for switch and 3ds 项目地址: https://gitcode.com/gh_mirrors/boo/Boop &#x1f3ae; 遇见你的游戏安装助手 还在为复杂的游戏文件安装流程头疼吗&…

作者头像 李华
网站建设 2026/4/14 1:04:43

【Gradio多模态模型实战指南】:手把手教你快速搭建惊艳AI演示系统

第一章&#xff1a;Gradio多模态模型演示系统概述Gradio 是一个开源的 Python 库&#xff0c;专为快速构建机器学习和深度学习模型的交互式 Web 演示界面而设计。它支持文本、图像、音频、视频等多种输入输出类型&#xff0c;特别适用于多模态模型的可视化展示与测试。通过简单…

作者头像 李华
网站建设 2026/3/30 23:42:12

【PyWebIO表单开发秘籍】:5步快速构建高效Web表单应用

第一章&#xff1a;PyWebIO表单开发概述PyWebIO 是一个轻量级 Python 库&#xff0c;旨在让开发者无需前端知识即可快速构建交互式 Web 界面。它特别适用于数据处理脚本、小型工具或教学演示场景&#xff0c;通过简单的函数调用即可创建表单、接收用户输入并展示结果。核心特性…

作者头像 李华
网站建设 2026/3/31 23:30:59

x64dbg下载图文教程:手把手带你入门

从零开始玩转 x64dbg&#xff1a;安全下载 实战调试全指南 你是不是也曾在逆向分析的门口徘徊&#xff1f;面对一个加密的程序、一段神秘的注册码验证逻辑&#xff0c;或者某个游戏里“不可能被修改”的血量值——你心里只有一个念头&#xff1a;“要是能看看它内部是怎么跑的…

作者头像 李华