Supabase 全栈开发实战:从云端到本地部署指南
Supabase 是一个基于 PostgreSQL 的开源后端服务框架,封装了用户认证、文件存储、边缘函数等功能,为开发者提供了一套开箱即用的后端基础设施。它在 GitHub 上拥有极高的关注度,支持通过源代码或 Docker 镜像进行私有化部署,同时也提供免费的云服务版本。
Supabase 的核心能力涵盖后端基础设施、前端 SDK 集成以及免费云服务。后端方面提供数据库、存储和鉴权;前端则通过 SDK 轻松接入 React、Vue 等框架。配合 AI 编程工具,可以快速搭建包含用户鉴权和数据库的完整应用。
数据库核心
访问官网并登录,创建组织与项目实例。在左侧 Table Editor 中可创建表、编辑字段及数据记录。SQL Editor 允许直接编写和执行 SQL 语句。
在 Database 菜单下,可以管理 Schema、表、函数、触发器、索引等。其中 Publications 功能支持通过 WebSocket 实时监控表的修改信息。
插件扩展
PostgreSQL 的强大之处在于插件生态。例如安装 PostGIS 插件后,数据库即可具备处理地理位置信息的能力,无需额外安装 GIS 软件。
CREATE TABLE city_map (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
geom GEOMETRY(POLYGON, 4326)
);
插入测试数据时,使用 ST_GeomFromText 定义几何对象:
INSERT INTO city_map (name, geom) VALUES
('人民公园', ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326)),
('护城河', ST_GeomFromText('LINESTRING(-5 5, 15 5)', 4326));
利用插件提供的函数,如 ST_Area 计算面积,ST_Distance 计算距离,即可完成地理空间查询。
数据库连接
除了网页操作,Supabase 支持远程直连。点击 Connect 按钮获取连接地址,可接入 DBeaver 等客户端工具。
连接模式分为三种:
- Direct Connection:直连模式,不支持 IPv4。
- Session Pooler:会话池模式,支持 IPv4。
- Transaction Pooler:事务池模式,由 Supabase 维护连接池,适合无状态服务(如 Serverless 函数)。
Supabase SDK
SDK 允许前端代码直接操作后端。初始化客户端需传入 URL 和 API Key。
import { createClient } from '@supabase/supabase-js'
const supabaseUrl = 'https://your-project.supabase.co'
const supabaseKey = 'your-anon-key'
supabase = (supabaseUrl, supabaseKey)



