在 Windows 系统中部署 Supabase,并进行有效测试,对许多开发者来说并非易事。本文将详细介绍在 Windows 环境下搭建 Supabase 环境的步骤,并提供测试方法和常见问题解决方案。考虑到国内网络环境复杂,本文会涉及到如何利用代理加速依赖下载,以及如何配置数据库连接等细节。
准备工作
安装 Docker Desktop for Windows:Supabase 依赖 Docker 容器运行,因此必须先安装 Docker Desktop。下载地址:https://www.docker.com/products/docker-desktop/。安装完成后,请确保 Docker 服务已经启动。
安装 Node.js 和 npm:Supabase CLI 需要 Node.js 环境。推荐使用 nvm (Node Version Manager) 管理 Node.js 版本,方便切换。
- 下载 nvm for Windows:https://github.com/coreybutler/nvm-windows/releases
- 安装完成后,使用
nvm install lts安装最新的 LTS 版本 Node.js,并使用nvm use lts切换到该版本。
安装 Supabase CLI:打开命令行工具(如 PowerShell 或 CMD),执行以下命令安装 Supabase CLI:

npm install -g @supabase/cli如果网络连接不稳定,可以尝试使用国内镜像源:
npm install -g @supabase/cli --registry=https://registry.npmmirror.com
初始化 Supabase 项目
创建本地项目目录:选择一个合适的目录,例如
D:\supabase-project,并在该目录下打开命令行工具。初始化 Supabase:执行
supabase init命令,初始化 Supabase 项目。这将在当前目录下创建一个.supabase文件夹,用于存放 Supabase 的配置文件。
supabase init启动 Supabase:执行
supabase start命令启动 Supabase。这将下载并启动 Supabase 的所有 Docker 容器,包括 PostgreSQL 数据库、Realtime 服务器、Storage 服务器等。supabase start首次启动可能需要较长时间,因为需要下载 Docker 镜像。如果下载速度慢,可以配置 Docker 的镜像加速器。例如,配置阿里云镜像加速:
- 打开 Docker Desktop 的设置,选择
Resources->Docker Engine,在配置文件中添加以下内容:
{ "registry-mirrors": [ "https://<your-alidocker-mirror>.mirror.aliyuncs.com" ] }- 替换
<your-alidocker-mirror>为你的阿里云镜像加速地址。
- 打开 Docker Desktop 的设置,选择
配置数据库连接:Supabase 启动后,会生成一个
supabase/.env文件,其中包含了数据库连接信息。你可以使用这些信息连接到本地的 PostgreSQL 数据库。
测试 Supabase 环境
使用 Supabase Studio:Supabase Studio 是一个图形化的数据库管理工具,可以通过浏览器访问。在
supabase start命令的输出中,可以找到 Supabase Studio 的地址,通常是http://localhost:54323。创建数据库表:在 Supabase Studio 中,可以创建数据库表,并插入一些测试数据。
编写测试代码:可以使用 Node.js 或其他编程语言编写测试代码,连接到 Supabase 数据库,并进行数据操作。

- 安装 Supabase JavaScript 客户端:
npm install @supabase/supabase-js- 编写测试代码:
// index.js import { createClient } from '@supabase/supabase-js' const supabaseUrl = 'http://localhost:54321' // 默认端口,如果修改过请相应修改 const supabaseKey = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwiaWF0IjoxNjQxNzY5MjAwLCJleHAiOjE5NTczNDUyMDB9.zvj-jJbN0bGtI_QyG6Z_8iU-Lw9t_4Vb7i57l3uB-Xw' const supabase = createClient(supabaseUrl, supabaseKey) async function testSupabase() { const { data, error } = await supabase .from('todos') // 假设你创建了一个名为 todos 的表 .select('*') if (error) { console.error('Error fetching data:', error) } else { console.log('Data:', data) } } testSupabase()- 运行测试代码:
node index.js如果一切正常,你应该能在控制台中看到从 Supabase 数据库中获取的数据。
常见问题及解决方案
- Docker 镜像下载失败:配置 Docker 镜像加速器,例如阿里云镜像加速或网易云镜像加速。
- 端口冲突:Supabase 默认使用 54321、54322、8000 等端口。如果这些端口被占用,可以在
.supabase/config.toml文件中修改端口配置。 - 数据库连接失败:检查
.env文件中的数据库连接信息是否正确,包括数据库地址、端口、用户名和密码。 - 权限问题:确保当前用户具有 Docker 容器的访问权限。
- 网络问题:部分网络环境下,可能需要配置代理才能正常访问 Supabase 服务。可以在命令行中设置
HTTP_PROXY和HTTPS_PROXY环境变量。
实战避坑经验总结
- 充分利用 Docker Compose:Supabase 的启动和停止依赖于 Docker Compose。熟悉 Docker Compose 的使用,可以更方便地管理 Supabase 服务。
- 备份数据库:定期备份 Supabase 数据库,防止数据丢失。可以使用
pg_dump命令备份 PostgreSQL 数据库。 - 监控服务状态:使用 Prometheus 和 Grafana 等工具监控 Supabase 服务的状态,及时发现并解决问题。
- 注意防火墙设置:确保防火墙允许访问 Supabase 相关的端口。
- 善用 Supabase 官方文档和社区:Supabase 官方文档提供了详细的说明和示例代码。如果遇到问题,可以在 Supabase 社区中寻求帮助。
希望以上指南能够帮助你在 Windows 环境下成功部署和测试 Supabase。Supabase 作为一款开源的 Firebase 替代方案,其强大的功能和灵活的部署方式,为开发者提供了更多的选择。记住,遇到问题时,多查阅文档,多尝试,总能找到解决方案。
冠军资讯
加班到秃头