注意
本文最后更新于 2022-11-06,文中内容可能已过时。
迁移平台后,原来其他平台的数据肯定希望能导入到新平台,但 Memos 官方还没有提供导入导出服务。
不过既然知道了 Memos 是用 SQLite 数据库保存的数据,那就转变思想,直接操作 SQLite db 文件即可。
先在 Memos 网页端随意发布一条 Memos,然后下载memos_prod.db文件,导出一个.csv文件作为模板。
打开数据库:
sqlite3 memos_prod.db打开数据库后导出.csv:
sqlite> .headers on
sqlite> .mode csv
sqlite> .separator ','
sqlite> .output memos.csv
sqlite> select * from `memo`;
sqlite> .quit导出的模板文件为memos.csv,用类似 Notepad++ 这类软件打开导入的 CSV 文件,把编码修改为UTF-8-BOM编码,不然重新导入到 Memos 后,中文会有乱码。

按照它的格式转换以前的数据:

保存后用命令导入到memos_prod.db这个 SQLite 数据库。
先打开数据库:
sqlite3 memos_prod.db打开数据库后导入:
sqlite> .headers on
sqlite> .mode csv
sqlite> .separator ','
sqlite> .output memos.csv
sqlite> select * from `memo`;
sqlite> .quit然后把新的memos_prod.db文件上传到服务器上的memos文件夹替换掉原来的文件,重启容器即可。
如果有权限问题,需要修改一下文件访问权限:
sudo chown www:www memos_prod.dbSQLite 数据管理工具有免费的 SQLiteStudio,也有收费的 Navicat 。
Navicat 虽然收费,但是有 14 天的试用期,14 天足够用了?吧。
打开 Navicat 后,连接 memos_prod.db

依次点开“memos”-main-表-memo,在memo表上点击右键,选择导出向导,
选择一种熟悉的文件格式:

一路默认下一步到底,点开始导出就行了。
打开导出的文件,按照格式添加以前的数据。

然后在打开的数据库左侧点击右键导入就行了。
最后把新的memos_prod.db文件上传到服务器上的memos文件夹替换掉原来的文件,重启容器即可。
如果有权限问题,需要修改一下文件访问权限:
sudo chown www:www memos_prod.db