前言

在群里看到有人说LeanCloud要停止服务了。登上评论管理界面看了一眼,还真是,好在期限很宽泛,直到明年才结束。好在数据不多,趁早就迁移一下吧。

前置准备

导出备份

进入LeanCloud,在导出界面选择“备份导出”,因其可用于mongorestore直接导入MongoDB数据库。申请后会提示12h内发送下载链接到邮箱,实际上两个小时就收到邮件了,很快。

包含下载链接的邮件

理论上讲只要下载名字开头不为_的资料,但保险起见都下载一下吧。将压缩包全部放到一个目录下,如C:\Users\0D000721\Downloads\Waline下。

注册 MongoDB Atlas

似乎Vercel内也可以注册MongoDB数据库,但是配置精细度不如自己在MongoDB网站上注册。

访问官网:https://www.mongodb.com/

注册完之后,选择新建一个集群(cluster)。记得一定要选择最右边的Free计划。可以选三个服务商的数据库:AWS、GCP和Azure。经典御三家了。

之后会配置放行的IP。理论上最安全的是将Vercel的IP池放入,但是我也没什么敏感内容,干脆就全放行了。填写0.0.0.0/24即可。

备份恢复

数据库连接

在创建好数据库集群后,点击“connect”,随后选择“compass”,选择“I have MongoDB Compass installed”后可以见到下方的链接,如mongodb+srv://0d000721:0d000721@waline.0d00.mongodb.net/。复制后粘贴到Navicat中,可以自动设置数据库的连接配置。

记录下该链接。

对于Waline,其不支持SRV记录,只能手动用地址+端口的方式连接。在同样的页码,选择Compass版本为“1.11 or ealier”,随后记录下这一长串地址,如mongodb://0d000721:0d000721@0d000721-00-00.kyw26ho.mongodb.net:27017,0d000721-00-01.kyw26ho.mongodb.net:27017,0d000721-00-02.kyw26ho.mongodb.net:27017/?replicaSet=atlas-0d00-shard-0&ssl=true&authSource=admin

mongorestore恢复

下载mongorestore工具链:https://www.mongodb.com/try/download/database-tools

解压后在同一目录打开,在终端输入:

1
mongorestore --uri "mongodb+srv://0d000721:0d000721@waline.0d00.mongodb.net/?appName=Cluster0" --db waline --dir "C:\Users\0D000721\Downloads\Waline" --gzip --drop

之后即可自动恢复导出的内容到数据库内。但是恢复的条目名字都会带bson压缩包的数字后缀,如Users.b73f13c1d7b7a67b0002382f8ad56324。可以在Navicat里手动删除下,也可以用命令行。

重命名后的数据库条目

Vercel环境变量修改

进入自己在Vercel上部署的Waline项目,修改其环境变量:

1
2
3
4
5
6
7
8
MONGO_DB = waline
MONGO_USER = 0d000721
MONGO_PASSWORD = 0d000721
MONGO_HOST = ["0d000721-00-00.kyw26ho.mongodb.net:27017,","0d000721-00-01.kyw26ho.mongodb.net:27017,","0d000721-00-02.kyw26ho.mongodb.net:27017,"] # MongoDB 主机名 参考上面的一长串
MONGO_PORT = [27017,27017,27017]
MONGO_REPLICASET = atlas-0d00-shard-0
MONGO_AUTHSOURCE = admin
MONGO_OPT_SSL = true

可以直接粘贴,很方便。

随后删除掉旧的LEAN_IDLEAN_KEYLEAN_MASTER_KEY即可。