Waline评论数据库由Leancloud牵至Vercel

昨天两位博友突然提醒我,说你的评论挂了。我上去一看,好家伙,之前Waline服务部署在Zeabur然后数据库使用的是Leancloud,没想到这两个双双都要被抛弃,前者彻底中断所有免费服务,不充钱不让用,最低每月5美金(再见);后者直接发通知明年1月起终止服务。理解他们经营的难处,毕竟有我们这么多只想白嫖不花钱的用户,给一个Respect

但是我们的博客还是要继续,评论不能挂掉,于是乎开始找解决方案。这一次,也许是缺少数据的喂养,问了ChatGPT以及Gemini都双双翻车,折腾了好一阵都失败,而且在搜索引擎没有找到和我一样情况的来借鉴。还好,最后终于在官方文档+QQ群网友的提醒下,找到了最终解决的路径。平时都不爱写这些的,但是考虑到这次经验可能会后面的朋友有用,就来写一下吧:

提示:本经历适用于使用Waline评论的朋友,更加直接对口的是Hexo+Next主题的朋友。话不多说,上步骤:

1、导出源数据,登录你原来的评论链接管理后台,点击【管理-导入导出】,然后点击【导出】,可以把你当前数据库中的所有历史的评论信息导出为一个json文件,这个在你迁移完成后一键导入时用

download

2、在Vercel上创建项目及数据库严格按照官方教程https://waline.js.org/guide/get-started/ 上的步骤创建项目及数据库

3、项目数据库绑定,这里官方教程少了一步,但是操作时有提示,需要将该数据库以及项目进行绑定,否则会报错

4、改变量名,在这里官方维护的就不够友好了,明明有一键创建,但是环境变量还不通用,所以当你完成上面的步骤时,只会出现下面这个东西:

error

按照下面这个对照表改:

原变量名 新变量名
POSTGRES_USER PG_USER
POSTGRES_PASSWORD PG_PASSWORD
POSTGRES_HOST PG_HOST
POSTGRES_DATABASE PG_DATABASE

Vercel默认构建的环境变量是不允许你乱动的,所以老的你不用管,直接创建右边这列新的就可以了,值就填老变量的值,老值从这里获取:点击Storage,再点击对应的数据库,来到这,把下面对应变量的值拿出来

get_var

再到这里进行添加即可

env

改完以后,到Deployment界面,找到最新的那个,点击右侧”…”,再点击Redeploy重新部署,完成以后你就会发现,一切都回来了

5、把老的数据导入,到这里以后就轻松了,点击项目链接,记得加上后缀/ui/register,比如你的是https://blogcomment-abcdefg.vercel.app/, 那么你就进入这个 https://blogcomment-abcdefg.vercel.app/ui/register 在这个页面注册的第一个用户就是管理员(很多朋友应该知道,这里再强调一下可能许多人忘了)

register

登录进入后,按照第一步一样的操作,但是点击右边的【导入】,等待一小会儿导入成功,一切就恢复正常了!

6、绑定域名,Vercel给的地址是会被墙的,所以得用自己的域名,这里对于站长来说可以说是轻车熟路了,简单来说就两步:

  • 在你域名管理后台加上一条CNAME记录,具体内容如下:

    参数名
    Type 选择 CNAME record
    Host 你的子域名,比如我的是comment (对应域名comment.jackielzq.com)
    Value cname-china.vercel-dns.com.
  • 在Vercel对应的项目中绑定域名即可,点击这个加号,把上面配置好的子域名填进去即可,经过几十秒自动校验就成功了,这时候就不需要再担心被墙的问题了

  • domain

7、配置邮件提醒,这一步许多人都做过了应该,但是上面的步骤下来你可能会漏掉,因为迁移时是不包含这部分的配置项的,回到第4步中Environment Variable环境变量界面,把对应的变量添加进去即可,不同邮箱略有不同,照着对应的说明去做就行:

变量名
SITE_URL 你的域名
SMTP_PASS 邮箱配置的密钥
SMTP_SERVICE QQ(这是我的)
SMTP_USER 你对应的邮箱地址

做到这步就大功告成了,确实折腾了挺久,其实主要原因还是对AI过于信赖(毕竟帮我解决了不少难题,值是恰好这题它不会而已)。希望我补充的这些喂给它以后,可以让其他朋友少走弯路。

最后想想那句话说的对,有时候,免费的才是最贵的(但是改变不了我们能白嫖就白嫖的原则)