前言#
前段时间收到了 LeanCloud 的停止服务通知邮件,昨天才开始着手开始迁移,所以有了这篇文章。
准备#
- 搭建 Waline 数据库 LeanCloud 时的账号;
- 搭建 Waline 前端 Vercel 时的账号;
- 一个数据库管理软件,推荐使用 Navicat;
迁移前的备份#
在正式开始数据迁移之前推荐先对数据进行备份,以免发生不可逆转的错误。
先直接导出一份 Waline 的数据:
- 进入自己的 Waline 后端管理界面
- 鼠标置于左上角点击「管理」选择「导入导出」
- 点击导出,等待导出完成即可

接下来导出数据库的备份,首先进入 LeanCloud 的控制台: 前往LeanCloud控制台
- 进入你的 Waline 数据库对应的项目,在左侧菜单栏展开「数据存储」再点击「导入导出」
- 顶部选择「数据导出」,再点击「导出」按钮(此步骤导出的数据需要很久才能到我们手中,至少到我现在写这篇文章为止,昨天中午我发出的导出申请到现在也还没收到数据)

- 点击左侧菜单栏的「结构化数据」,可以看到我们实际上正在使用的表只有三张,分别是
Comment、Counter和Users,我们分别点击这三张表,然后在右上方点击下载按钮,再选择JSON即可

开始数据迁移#
我们进入 Vercel 的控制台: 前往Vercel控制台
- 找到自己 Waline 对应的项目,在顶部我们可以看见有一个「Storage」,点击进入后再点击「Create Database」,数据库服务选择「Neon」,点击「Continue」进行下一步
- 接下来会跳转到 Neon 让你创建账号,点击「Accept and Create」后直接「Continue」即可
- 然后会让你自定义数据库名称,按喜好填入后「Continue」即可
- 进入 Neon 控制台:
前往Neon控制台
,点击你对应的项目后在顶部可以看见一个「Connect」的按钮,点击后会有一个会话框,在
connection string中会有你所有的连接信息,点击底部「Show password」查看密码,以下是示例以及对应信息:

psql 'postgresql://neondb_owner:yourwalinedbpassword@dbserverrgeion.aws.neon.tech/neondb?sslmode=require&channel_binding=require'
其中需要的信息有:
- 数据库用户名:
neondb_owner - 用户对应密码:
yourwalinedbpassword - 数据库地址及数据库名称:
dbserverrgeion.aws.neon.tech/neondb,其中/后的neondb就是连接的数据库名称 - 启用 SSL 加密:
require即“需要” - 启用通道绑定:
require即“需要”
打开你的 Navicat,新建连接,选择PostgreSQL。其中「连接名称」随意;「主机」填上面的数据库地址,例如我的dbserverrgeion.aws.neon.tech,端口默认;初始数据库填neondb;用户名和密码填上面你对应的用户名和密码,例如我的neondb_owner和yourwalinedbpassword;切换选项卡到「SSL」,勾选「使用 SSL」,点击确定。
在左侧选择你刚刚新建的数据库连接,选择neondb数据库,选择模式public,点击顶部新建查询,将 waline.pgsql 的内容填入,确认选择运行位置后点击「运行」即可。

使用F5刷新后就可以看见我们刚刚初始化的三张表,接下来按照Users、Counter和Comment的顺序导入我们的数据。

- 右键
Users表,选择「导入向导」; - 导入类型:
.json; - 添加文件,导出时默认下载在
Downloads下,命名为类似于Counter_20260203_112138.json - 表行标签选
(Root) - 源的日期时间格式将「日期排序」改为
YMD,日期分隔符改为- - 手动映射以下项,请注意,其他字段 Navicat 会帮你自动映射,但
createdAt和updatedAt还有Comment表的insertedAt字段需要自己手动映射;另外,objectId的目标字段需要为空,并设置为主键:
| 源字段 | 目标字段 | 主键 |
|---|---|---|
| 2fa | 2fa | |
| createdAt | createdat | |
| display_name | display_name | |
| github | github | |
| label | label | |
| objectId | ✓ | |
| password | password | |
| type | type | |
| updatedAt | updatedat | |
| url | url |
- 导入模式使用默认的「追加」即可;
- 最后点击「开始」按钮,等待数据导入完成。
其他两张表,Comment和Counter按照以上步骤依葫芦画瓢即可。
导入完成后可以在 Navicat 看到我们最后的数据库内容。

连接到 Vercel#
完成以上数据导入之后我们就可以开始连接到我们的 Vercel 了。
回到我们的 Vercel,依旧是顶部的「Storage」,可以看到我们的 Neon 后有一个「Connect Project」。
点击之后再在顶部「Settings」中找到「Environments」,点击「Production」,将其中的LEAN_ID、LEAN_KEY和LEAN_MASTER_KEY名称后加一个_OFF,像下面这样:


最后#
以上我们就已经完成了数据库的迁移,可以重新部署一次 Waline 后就可以开始使用了,可以发现使用体验没变,差不多也算平滑迁移了吧(
本文作者: 褐瞳さん
本文链接: https://www.hetong-re4per.com/posts/migrate-database-to-neon/
版权声明: 本文文字在未特别注明下默认使用 CC BY-NC-SA 4.0 许可协议。




