最近我使用Next.js重构了个人博客,需要重新部署Waline评论系统。但发现之前用的LeanCloud数据库已发布公告,准备弃坑了,后续无法使用,于是按照 Waline 官方教程切换到Neon(PostgreSQL)数据库。
总体来说,按照官方的图文教程来做,是很简单的。但是最后我的Waline访问却不正常。提示下面的错误:

在Vercel的Logs处发现是服务没有正常访问数据库。
Error: No valid storage found. Please check your environment variables.
Waline没有识别到任何数据库配置。 这种情况通常是因为环境变量名不正确,或者添加变量后没有重新部署。我确认已经重新部署过,因此判断问题出在环境变量配置上。
你需要先将 Neon 数据库的必要信息复制出来:

然后进入Waline在Vercel上的项目部署页面,打开 Settings > Environment Variables,添加以下字段:
| 变量名 | 值从哪来 |
|---|---|
PG_HOST | 取PGHOST_UNPOOLED的值 |
PG_DB | 取PGDATABASE的值 |
PG_USER | 取POSTGRES_USER的值 |
PG_PASSWORD | 取PGPASSWORD的值 |
PG_SSL | 填true |

提示: 添加环境变量后,需要进入Vercel项目的Deployments页面,找到最新部署点击 "Redeploy",变量才会生效。
重新部署后,Waline就能正常连接数据库了。更多信息请参考 Waline 官方文档。

至此,Waline评论系统就成功迁移到Neon数据库了。如果你也遇到类似问题,希望这篇指南能帮你节省时间。
评论