Logo 分享测试

国外

Affine 数据迁移到 1Panel 教程#

好的 ✅ 我帮你整理成一份详细的 《Affine 数据迁移到 1Panel 教程》,格式为 Markdown,方便你直接放到你的知识库或博客。


Affine 数据迁移到 1Panel 教程#

本文记录了如何将 旧服务器上的 Affine 数据 迁移到 新服务器上的 1Panel 部署环境。核心思路是 直接导出 / 导入 PostgreSQL 数据库,绕过 1Panel 的应用备份限制。


一、前提条件#

  • 源服务器:已有运行中的 Affine(Docker 部署),数据库容器名为 affine_postgres
  • 目标服务器:使用 1Panel 部署 Affine,并提前创建好数据库(PostgreSQL)。
  • 数据库信息:数据库名 affine,用户 affine

二、在旧服务器导出数据库#

进入宿主机执行以下命令:

# 导出为 SQL 文件
docker exec -t affine_postgres pg_dump -U affine -d affine > affine.sql

如需压缩:

docker exec -t affine_postgres pg_dump -U affine -d affine | gzip > affine.sql.gz

此时会在当前目录生成 affine.sqlaffine.sql.gz


三、在新服务器准备数据库#

在 1Panel 界面中新建 PostgreSQL 数据库:

  • 数据库名:affine
  • 用户名:affine
  • 密码:自行设置

确保新建的数据库为空。


四、在新服务器导入数据库#

affine.sql 文件上传到新服务器。然后执行:

# 导入 sql 文件
docker exec -i affine_postgres psql -U affine -d affine < affine.sql

如果是压缩包:

gunzip -c affine.sql.gz | docker exec -i affine_postgres psql -U affine -d affine

导入成功后,数据就已经写入到新建的数据库中。


五、部署 Affine 并绑定数据库#

在 1Panel 中部署 Affine 应用时,选择刚刚导入数据的数据库(affine)。 部署完成后,Affine 会自动读取数据库里的数据。


六、验证数据#

  • 使用原有账号登录 Affine
  • 确认笔记内容完整
  • 确认附件、图片等正常显示

如果都无误,迁移成功 🎉


七、经验总结 & 避坑#

  1. 不要直接用 1Panel 应用导入功能
    • 它要求 .tar.gz 内必须包含 app.jsonapp.tar.gz,和普通 pg_dump 文件格式不兼容。
    • 所以直接走命令行导入数据库更稳妥。
  2. 注意数据库用户权限
    • 确保 affine 用户对数据库有完整的读写权限,否则导入会报错。
  3. 建议保留源数据库备份
    • 即使迁移完成,也建议保留 affine.sql.gz 作为冷备。

✅ 至此,Affine 已经成功迁移到 1Panel 环境,可以无缝继续使用。