Skip to content

[Deactivated]从旧版本迁移(v0.8.2 to v0.9)

Ailitonia edited this page Jul 24, 2024 · 1 revision

迁移说明

nonebot2 从 a16 到 b1 有较大变化,本项目也借此机会进行了一次重构

由于重构时对数据库进行了较大幅度的表结构调整,因此从 v0.8.2 升级到 v0.9 不支持覆盖升级,也请不要直接覆盖升级,避免导致数据库出现不可预料的错误与数据丢失

也是由于数据库表结构调整的原因,迁移工具仅会保留并迁移以下信息:

  • Bot 基础信息
  • 订阅源信息
  • 邮箱信息
  • 群组基础信息(包含命令权限/权限等级,不含权限节点)
  • 群组订阅内容
  • 群组绑定邮箱
  • 用户基础信息(包含命令权限/权限等级,不含权限节点)
  • 用户订阅内容
  • 用户签到信息(包含好感度/能量/签到历史)

其中需要您注意的是用户签到信息,若您在之前的版本中对接了多个协议端,则这几个协议端的签到信息是共用的,在本次数据迁移后,每个协议端都将获得当前签到信息的一份副本,此后每个协议端的签到信息都将独立计算,即迁移后签到信息将会“分叉”

除去以上说明将会保留的信息外,其余数据库信息将不会被保留和迁移

您已经阅读了以上说明并知悉了将会被迁移的数据内容

迁移前的准备工作

请将您的数据库完整地进行备份,保证能直接恢复到迁移前的状态

请将您的数据库完整地进行备份,保证能直接恢复到迁移前的状态

请将您的数据库完整地进行备份,保证能直接恢复到迁移前的状态

迁移步骤

Step.1 版本与状态确认

确认您的 omega-miya 版本为 v0.8.2,若您的当前版本低于 v0.8.2,请直接覆盖升级到 v0.8.2

Step.2 准备导出工具

下载数据导出工具包(export-tool-from-v0.8.2.a16.zip)

Step.3 导出数据

  1. export-tool-from-v0.8.2.a16.zip 解压后,直接覆盖到原项目位置上,替换原有的 bot.py 文件及 omega_miya 文件夹

  2. 准备完成后,运行 bot.py,并开始数据导出,该步骤根据用户数量耗时 1~10 分钟或更长

  3. 待日志输出 [Success]... All output processing completed 即表示导出操作已完成,检查导出过程日志,若有 Error 则可能部分输出导出不成功,可以尝试重新上述步骤,若依然有错误,可以发 issue 请求帮助

  4. 上述步骤完成后,在项目路径 omega_miya/output/ 中应当可以找到 6 个保存有导出数据的 json 文件: sub_source.json bot_self.json user_data.json mail_box_data.json bot_group_data.json bot_friend.json,将这 6 个 json 复制并保存到安全的位置

Step.4 安装新版本

  1. 复制 .env .env.prod 到其他安全位置,便于配置新版本

  2. 完全删除当前版本项目文件

  3. 安装新版本: v0.9,配置时可以参考之前的 .env .env.prod 文件对照修改

  4. 完成安装后先运行一次 bot,确保运行正常且成功初始化了数据库表结构

Step.5 导入数据

  1. 打开项目目录,定位到项目目录 omega-miya/tools/,将该目录中的 import_old_version_data 文件夹整个一起复制到 omega-miya/plugins/ 目录中

  2. 将 Step.3 中导出的 sub_source.json bot_self.json user_data.json mail_box_data.json bot_group_data.json bot_friend.json 这 6 个 json 文件复制到 omega-miya/plugins/import_old_version_data/ 目录中

  3. 运行 bot.py,并开始数据导入,该步骤根据之前导出的数据量耗时 2~20 分钟或更长

  4. 待日志输出 [Success]... All import processing completed 即表示导入操作已完成,检查导入过程日志,若有 Error 则可能部分输出导入不成功,可以尝试重新上述步骤,若依然有错误,可以发 issue 请求帮助

  5. 确认导入数据无误后,即可删除 omega-miya/plugins/import_old_version_data/ 整个目录

Step.6 完成迁移

以上操作都成功完成后,迁移就算成功了,您可以连接协议端检查群组和用户信息是否正常,若存在数据异常可以使用备份的数据库恢复后再次尝试迁移,若依然有问题请发 issue 请求帮助