Supabase 全栈开发实战:从云端服务到本地部署
2025 年,Supabase 作为开源后端基础设施的代表项目,在 GitHub 上获得了极高的关注度。它基于强大的 PostgreSQL 数据库,封装了用户认证、文件存储、边缘函数及可视化运维面板等功能,为开发者提供了一套开箱即用的后端解决方案。
Supabase 的核心能力涵盖后端基础设施、前端 SDK 集成以及灵活的云服务选项。后端方面,它提供数据库、存储和边缘计算能力;前端则通过 SDK 支持 React、Vue 甚至移动端应用快速接入。作为一个完全开源的项目,既可以使用官方云服务,也能通过 Docker 自行部署完整实例。
本文将深入探讨 Supabase 的数据库核心、SDK 使用、行级安全策略(RLS)以及本地化部署方案。
数据库核心
访问 Supabase 官网并登录,创建组织与项目即可拥有一个完整的 PostgreSQL 实例。在左侧菜单中,Table Editor 提供了可视化的表管理功能,支持字段定义、数据增删改查。SQL Editor 则允许直接编写和执行原生 SQL 语句。
插件扩展
PostgreSQL 的强大之处在于其丰富的插件生态。例如,安装 postgis 插件后,数据库便具备了处理地理空间数据的能力,可替代部分 GIS 系统。
启用插件后,可以创建包含几何类型的表:
CREATE TABLE city_map (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
geom GEOMETRY(POINT, 4326)
);
插入测试数据:
INSERT INTO city_map (name, geom) VALUES
('公园', ST_GeomFromText('POINT(10 10)', 4326)),
('河流', ST_GeomFromText('LINESTRING(0 0, 20 20)', 4326));
利用插件提供的函数,可以计算面积或查询邻近点。例如查找距离某坐标最近的元素:
SELECT name, ST_Distance(geom, ST_GeomFromText('POINT(12 8)', 4326)) AS distance
FROM city_map
ORDER BY distance ASC;
数据库连接
除了网页操作,Supabase 支持远程直连。点击 Connect 按钮获取连接信息,可接入 DBeaver 等客户端工具。
连接模式主要有三种:
- Direct Connection:直连模式,延迟最低但不支持 IPv4。
- Session Pooler:会话池模式,支持 IPv4,适合常规应用。
- Transaction Pooler:事务池模式,由 Supabase 维护连接池,特别适合无服务器函数或边缘计算场景。
Supabase SDK
Supabase SDK 使得前端框架能轻松调用后端能力。以 Vue.js 为例,初始化工程后安装 SDK:


