工具教程

Waline + PostgreSQL 快速配置指南

使用 PostgreSQL 数据库配置 Waline 评论系统的快速指南

Waline + PostgreSQL 快速配置指南

本指南帮助你快速使用 PostgreSQL 数据库配置 Waline 评论系统。

🎯 为什么选择 PostgreSQL?

相比 LeanCloud,PostgreSQL 有以下优势:

数据自主:数据完全掌控在自己手中 ✅ 功能强大:支持复杂查询和事务 ✅ 无需实名:不需要实名认证 ✅ 广泛支持:可以使用现有的 PostgreSQL 数据库 ✅ 仍然免费:多个平台提供免费 PostgreSQL 服务

🚀 三步快速配置

第一步:选择 PostgreSQL 服务

推荐以下免费服务(任选一个):

服务免费额度优点推荐指数
Vercel Postgres256 MB与 Vercel 无缝集成⭐⭐⭐⭐⭐
Supabase500 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/verceldb

Supabase

# 1. 访问 https://supabase.com
# 2. 创建项目,设置数据库密码
# 3. Project Settings → Database → Connection string → URI
postgresql://postgres:your_password@db.xxxxx.supabase.co:5432/postgres

Railway

# 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

  1. 一键部署

    访问:https://vercel.com/new/clone?repository-url=https://github.com/walinejs/waline/tree/main/example

  2. 配置环境变量

    只需添加一个环境变量:

    变量名
    PG_DB你的 PostgreSQL 连接字符串

    可选变量:

    变量名说明
    SITE_NAMEGoCode网站名称
    SITE_URLhttps://your-domain.com网站地址
    AUTHOR_EMAILyour@email.com管理员邮箱
  3. 部署并获取地址

    点击 Deploy,等待 2-3 分钟,获取服务器地址:

    https://waline-server-xxx.vercel.app
  4. 更新前端配置

    运行配置脚本:

    cd /Users/Lever/ownSpace/gocode/gocode-monorepo
    ./scripts/configure-waline.sh

    输入你的 Waline 服务器地址。

  5. 测试评论功能

    pnpm --filter=@gocode/site-astro dev

    访问任意文章页面,测试评论功能。


🔧 高级配置

连接池配置

如果使用 Supabase 或其他支持连接池的服务,可以优化性能:

# 使用连接池(推荐)
postgresql://postgres:password@host:6543/postgres?pgbouncer=true

# 直连(不推荐用于生产环境)
postgresql://postgres:password@host:5432/postgres

SSL 连接

大多数云服务默认启用 SSL,如果需要禁用:

postgresql://postgres:password@host:5432/postgres?sslmode=disable

数据库表结构

Waline 会自动创建以下表:

  • wl_Comment - 评论数据
  • wl_Counter - 访问统计
  • wl_Users - 用户数据

首次启动时会自动创建,无需手动操作。


📊 成本对比

方案月度成本存储空间API 请求
LeanCloud$01 GB30,000/天
Vercel Postgres$0256 MB无限制
Supabase$0500 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: 数据库连接失败?

检查清单

  1. ✅ 连接字符串格式正确
  2. ✅ 数据库服务正在运行
  3. ✅ 防火墙允许连接
  4. ✅ 用户名和密码正确

Q3: 如何迁移数据?

如果你已经在使用 LeanCloud,想迁移到 PostgreSQL:

  1. 导出 LeanCloud 数据

    • 登录 LeanCloud 控制台
    • 数据存储 → 导出数据
  2. 导入到 PostgreSQL

    • 使用 Waline 提供的迁移工具
    • 或手动导入 SQL
  3. 更新环境变量

    • 删除 LEAN_* 变量
    • 添加 PG_DB 变量
  4. 重新部署

    • 在 Vercel 重新部署应用

Q4: PostgreSQL 和 LeanCloud 可以同时使用吗?

不建议。如果同时配置,Waline 会优先使用 LeanCloud。

建议只配置一种数据库。

Q5: 如何备份数据?

Vercel Postgres

# 使用 Vercel CLI
vercel env pull
vercel postgres backup

Supabase

  • 在 Supabase 控制台自动备份
  • 或使用 pg_dump 手动备份

Railway

  • Railway 自动备份
  • 或在控制台手动创建快照

🎯 推荐方案

个人博客(推荐)

Vercel Postgres

  • ✅ 与 Vercel 无缝集成
  • ✅ 零配置
  • ✅ 自动备份
  • ✅ 完全免费

已有数据库

使用现有 PostgreSQL

  • ✅ 数据集中管理
  • ✅ 统一备份策略
  • ✅ 降低成本

功能需求高

Supabase

  • ✅ 500 MB 存储
  • ✅ 实时数据库
  • ✅ 自动 API
  • ✅ 完全免费

📚 相关资源


💡 总结

使用 PostgreSQL 配置 Waline 非常简单:

  1. ✅ 选择一个免费的 PostgreSQL 服务
  2. ✅ 获取数据库连接字符串
  3. ✅ 在 Vercel 部署时配置 PG_DB 环境变量
  4. ✅ 完成!

优势

  • 完全免费
  • 数据自主
  • 功能强大
  • 易于迁移

现在就开始使用 PostgreSQL 吧!🚀