Waline + PostgreSQL 快速配置指南
本指南帮助你快速使用 PostgreSQL 数据库配置 Waline 评论系统。
🎯 为什么选择 PostgreSQL?
相比 LeanCloud,PostgreSQL 有以下优势:
✅ 数据自主:数据完全掌控在自己手中 ✅ 功能强大:支持复杂查询和事务 ✅ 无需实名:不需要实名认证 ✅ 广泛支持:可以使用现有的 PostgreSQL 数据库 ✅ 仍然免费:多个平台提供免费 PostgreSQL 服务
🚀 三步快速配置
第一步:选择 PostgreSQL 服务
推荐以下免费服务(任选一个):
| 服务 | 免费额度 | 优点 | 推荐指数 |
|---|---|---|---|
| Vercel Postgres | 256 MB | 与 Vercel 无缝集成 | ⭐⭐⭐⭐⭐ |
| Supabase | 500 MB | 功能最强大 | ⭐⭐⭐⭐⭐ |
| Railway | $5/月额度 | 配置最简单 | ⭐⭐⭐⭐ |
第二步:获取数据库连接字符串
根据你选择的服务,获取 PostgreSQL 连接字符串:
Vercel Postgres
# 1. 访问 https://vercel.com/dashboard
# 2. 点击 Storage → Create Database → Postgres
# 3. 创建后复制 POSTGRES_URL
postgres://default:xxxxx@xxxxx.postgres.vercel-storage.com:5432/verceldbSupabase
# 1. 访问 https://supabase.com
# 2. 创建项目,设置数据库密码
# 3. Project Settings → Database → Connection string → URI
postgresql://postgres:your_password@db.xxxxx.supabase.co:5432/postgresRailway
# 1. 访问 https://railway.app
# 2. New Project → Provision PostgreSQL
# 3. 点击 PostgreSQL → Connect → 复制 Postgres Connection URL
postgresql://postgres:xxxxx@containers-us-west-xxx.railway.app:5432/railway第三步:部署 Waline 到 Vercel
一键部署
访问:https://vercel.com/new/clone?repository-url=https://github.com/walinejs/waline/tree/main/example
配置环境变量
只需添加一个环境变量:
变量名 值 PG_DB你的 PostgreSQL 连接字符串 可选变量:
变量名 值 说明 SITE_NAMEGoCode 网站名称 SITE_URLhttps://your-domain.com 网站地址 AUTHOR_EMAILyour@email.com 管理员邮箱 部署并获取地址
点击 Deploy,等待 2-3 分钟,获取服务器地址:
https://waline-server-xxx.vercel.app更新前端配置
运行配置脚本:
cd /Users/Lever/ownSpace/gocode/gocode-monorepo ./scripts/configure-waline.sh输入你的 Waline 服务器地址。
测试评论功能
pnpm --filter=@gocode/site-astro dev访问任意文章页面,测试评论功能。
🔧 高级配置
连接池配置
如果使用 Supabase 或其他支持连接池的服务,可以优化性能:
# 使用连接池(推荐)
postgresql://postgres:password@host:6543/postgres?pgbouncer=true
# 直连(不推荐用于生产环境)
postgresql://postgres:password@host:5432/postgresSSL 连接
大多数云服务默认启用 SSL,如果需要禁用:
postgresql://postgres:password@host:5432/postgres?sslmode=disable数据库表结构
Waline 会自动创建以下表:
wl_Comment- 评论数据wl_Counter- 访问统计wl_Users- 用户数据
首次启动时会自动创建,无需手动操作。
📊 成本对比
| 方案 | 月度成本 | 存储空间 | API 请求 |
|---|---|---|---|
| LeanCloud | $0 | 1 GB | 30,000/天 |
| Vercel Postgres | $0 | 256 MB | 无限制 |
| Supabase | $0 | 500 MB | 无限制 |
| Railway | $0 | 取决于用量 | 无限制 |
结论:所有方案都完全免费,足够个人博客使用!
🐛 常见问题
Q1: 连接字符串格式错误?
错误示例:
postgres:xxxxx@xxxxx.postgres.vercel-storage.com:5432/verceldb正确格式:
postgres://xxxxx@xxxxx.postgres.vercel-storage.com:5432/verceldb⚠️ 必须以 postgres:// 或 postgresql:// 开头!
Q2: 数据库连接失败?
检查清单:
- ✅ 连接字符串格式正确
- ✅ 数据库服务正在运行
- ✅ 防火墙允许连接
- ✅ 用户名和密码正确
Q3: 如何迁移数据?
如果你已经在使用 LeanCloud,想迁移到 PostgreSQL:
导出 LeanCloud 数据
- 登录 LeanCloud 控制台
- 数据存储 → 导出数据
导入到 PostgreSQL
- 使用 Waline 提供的迁移工具
- 或手动导入 SQL
更新环境变量
- 删除
LEAN_*变量 - 添加
PG_DB变量
- 删除
重新部署
- 在 Vercel 重新部署应用
Q4: PostgreSQL 和 LeanCloud 可以同时使用吗?
不建议。如果同时配置,Waline 会优先使用 LeanCloud。
建议只配置一种数据库。
Q5: 如何备份数据?
Vercel Postgres
# 使用 Vercel CLI
vercel env pull
vercel postgres backupSupabase
- 在 Supabase 控制台自动备份
- 或使用
pg_dump手动备份
Railway
- Railway 自动备份
- 或在控制台手动创建快照
🎯 推荐方案
个人博客(推荐)
Vercel Postgres
- ✅ 与 Vercel 无缝集成
- ✅ 零配置
- ✅ 自动备份
- ✅ 完全免费
已有数据库
使用现有 PostgreSQL
- ✅ 数据集中管理
- ✅ 统一备份策略
- ✅ 降低成本
功能需求高
Supabase
- ✅ 500 MB 存储
- ✅ 实时数据库
- ✅ 自动 API
- ✅ 完全免费
📚 相关资源
💡 总结
使用 PostgreSQL 配置 Waline 非常简单:
- ✅ 选择一个免费的 PostgreSQL 服务
- ✅ 获取数据库连接字符串
- ✅ 在 Vercel 部署时配置
PG_DB环境变量 - ✅ 完成!
优势:
- 完全免费
- 数据自主
- 功能强大
- 易于迁移
现在就开始使用 PostgreSQL 吧!🚀
