V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
seamon
V2EX  ›  Apple

Mac QQ 聊天记录从 V6.8.2 到 V6.9.29 的完整迁移

  •  1
     
  •   seamon · 282 天前 · 2650 次点击
    这是一个创建于 282 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人 QQ 聊天记录有 20 多年,历经各版本的 Windows 到 mac ,一直保存完好并持续迁移。

    前年 Mac QQ 发布了新架构的版本之后,也尝试迁移过,但聊天记录迁移不完整,丢失了很多,当时手头有其它的事,也没有认真研究,回滚到 V6.8.2 就完事了,一直用到现在。

    这不前几天 QQ 25 周年社交树传来传去的,感觉老版有点不方便了,下载了最新的 V6.9.29 又迁移了一次,跟上次一样,聊天记录还是不完整,点了 “导入历史消息” 后,只有最近的数据,2016 年之前的就没有了。

    经过一番研究,终于找到了原因,并曲线解决之。希望能帮助到和我有同样困扰的朋友。

    1 、聊天记录迁移不全的原因

    一直以来,从 Windows 到 Mac ,聊天记录的数据库文件一直是 Msg2/3.0.db ,那时迁移很简单,文件复制过去就可以了。大概是 2016 年 6 月左右的某个 Mac 版本,开始放弃 Msg.db 文件,新的聊天记录开始记录在 QQ.db 文件中,Msg.db 不再更新。但在 QQ 里查看历史记录的时候,会做无缝对接,把 QQ.db 和 Msg.db 的数据拼接到一起,只是看起来是一体的。

    但 QQ NT 新架构在迁移数据的时候,只会读取 QQ.db ,不管 Msg.db ,所以只有最新的数据被迁移过去,所有在 Msg.db 里的数据,在 NT 版里就完全没有了。

    而且更要命的是,QQ.db 和 Msg.db 的文件格式,似乎是不太一样的,如果你直接拿 Msg.db 替换掉 QQ.db 想糊弄过去让 NT 版导入,它会拒绝执行,说文件有错。

    2 、解决方案

    需要有一台 Windows ,可以是物理机,或者用 parallel desktop 搭一个,14 天试用期,足够了。

    下载非 NT 版的 Win QQ ,官方下载地址: https://dldir1.qq.com/qqfile/qq/PCQQ9.7.22/QQ9.7.22.29315.exe

    推荐用这个 9.7.22 版,我也试了好几个版本,旧的已经无法登录了,再新就是 NT 内核。

    以下涉及到路径的,都使用默认路径。

    2.1 关闭 Mac QQ ,备份 Mac QQ 的所有数据,以防万一。虽然从我的操作过程来看没什么问题,但养成备份的好习惯还是有必要的。需要备份的目录为

    ~/Library/Containers/com.tencent.qq/Data

    2.2 关闭 Mac QQ ,复制文件

    ~/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/<qq number>/Msg3.0.db

    到 Windows 上。

    2.3 在 Windows 上安装 Win QQ V9.7.22 版。启动,登录,打开 “消息管理器”,选择 “从文件导入”,选择刚才复制过来的 Msg3.0.db ,导入聊天记录。这是 Mac 上两块聊天记录中更旧的那一部分。

    2.4 下载安装 Win QQ 最新 NT 内核版 V9.9.7 ,提示 “是否导入 xxx 的历史消息” 时,选择导入,查看新版,有了刚才从 Mac 上迁移过来的旧的聊天记录。

    2.5 关闭 Win QQ ,复制目录

    C:\Users<user name>\Documents\Tencent Files\<qq number>\nt_qq

    到 Mac 上。

    2.6 下载安装 Mac QQ 最新 NT 内核版 V6.9.29 ,提示 “是否导入 xxx 的历史消息” 时,不导入。此时新版显示 聊天记录为空。

    2.7 关闭 Mac QQ ,进入

    ~/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ

    目录,寻找名字为 nt_qq_xxxxxxxxxxxxxx 的目录,我是只有一个号码登录,不知道多号登录的话是否会有多个 nt_qq_xxxxx 目录,需要你自己小心选择。

    选择好 nt_qq_xxxxxxxx 目录后,把刚才从 Win QQ 复制过来的 nt_qq 下面的 nt_data ,nt_db ,nt_temp 三个目录都复制到这个 nt_qq_xxxxxx 目录下,覆盖原来的文件。

    2.8 启动 Mac QQ ,此时应该有聊天记录显示出来了,上面说过,这是两组聊天记录中更旧的那一部分。

    2.9 点击 Mac QQ 左下角的 三 图标,选择菜单最上方的 “导入历史消息”,此时会把原来 Mac QQ 里最近的那部分聊天记录导入。

    2.10 导入完成后,检查 Mac QQ 的聊天记录,现在应该是完整的数据了。

    注意事项:

    1 、不管是哪个平台,在拷贝和覆盖文件时,都要首先把 QQ 关闭,以免破坏数据完整性。

    2 、我只验证了文字的完整性,图片视频等未验证,因为图片视频的存储机制一直是个谜,经历这么多版本迁移,原来的聊天记录里早就已经不完整了。那么多年的数据,也不在乎图片视频了,只要文字留下来就好。

    目前我用着都还好,但不保证在后续的使用中是否会有问题。请风险自负。

    19 条回复    2024-04-18 14:08:12 +08:00
    mikaelson
        1
    mikaelson  
       282 天前
    我就想知道,微信从 win 转 mac 有没有好的方法。。。
    equationzhao
        2
    equationzhao  
       282 天前
    厉害了
    Yukineko
        3
    Yukineko  
       282 天前
    20 年。。这数据库文件得有多大?
    poterliu
        4
    poterliu  
       282 天前
    看得出你是一个非常重视自己的数据和记忆的极客
    quzard
        5
    quzard  
       281 天前 via iPhone
    在前几天装机时选择了断舍离格式化了,不再备份 qq 记录了
    solo1d
        6
    solo1d  
       281 天前
    @mikaelson 简单呀, 把 win 的记录迁移到手机上,然后手机再迁移到 mac 上就可以了
    mikaelson
        7
    mikaelson  
       281 天前
    @solo1d #6 300 多个 g 。。。而且手机上的记录本和电脑上的就不同步
    motivation
        8
    motivation  
       281 天前
    @mikaelson 不影响的,我当时就是 win 迁移到手机、然后 mac 迁移到手机,最后手机上是最全的,然后手机再迁移到 win 或者 mac ,这样 mac 上就有全量了
    zhaidoudou123
        9
    zhaidoudou123  
       281 天前
    22 年以前一直开着 qq 会员就为了备份聊天记录
    后来看开了,无所谓了,再没充过钱
    mikaelson
        10
    mikaelson  
       281 天前
    @motivation #8 我其实不想跟手机的合在一起,哈哈。是不是没别的办法了。。。另外,300g 是不是得搞好久
    ShadowPower
        11
    ShadowPower  
       281 天前
    我以前一直留着聊天记录
    一年前发现那个 Msg3.0.db 还是哪个文件已经达到 50GB 了……

    因为懒得整理,全都删了
    motivation
        12
    motivation  
       281 天前
    @mikaelson 还行,准备一个速率高的路由器或者 wifi6 的手机热点,1200 或者 2400mhz 的握手速率,微信迁移速度可以到 70-90mb/s ,我当时是用一台安卓机做热点,然后 pc 连安卓,ipad 连安卓,ipad 刚好是 2tb 容量,这样容量也不是问题,很快!,最后结束了,再把 ipad 上全量的倒回 pc 里
    ericFork
        13
    ericFork  
       281 天前
    respect ,已经看开了,送上一份感谢
    mikaelson
        14
    mikaelson  
       281 天前
    @motivation #12 我初步这样想,找一台干净的手机去登陆我的微信,然后把电脑的记录恢复到这台手机上,然后在恢复到 mac 上。。。等结束了,我在把微信登回到自己在用的手机,这样现在的手机记录也不会被整合了- -好像只能这样了
    wuzhi1234
        15
    wuzhi1234  
       279 天前
    真棒,照着一步步操作,把十几年前的 QQ 聊天记录恢复了哈哈
    quech
        16
    quech  
       253 天前
    借用楼主第一步 把前十年有些聊天记录找回来了🤣
    ultralix
        17
    ultralix  
       240 天前
    您的信息极具参考价值,感谢!

    最近 Win QQ 开始弹自动更新到 NT 了,我的两个号也都有至少 20 多年的历史了,其中一个肯定是上世纪的。除了有一次硬盘误操作丢失了将近一年的记录,其它的似乎能追朔到上世纪。

    看来自动升级程序还是比较成熟,可以一试了。
    Prophetia
        18
    Prophetia  
       225 天前
    目前还没有试,但是先感谢如此仔细的研究,不久就会尝试,到时候再来表达敬意!!
    Prophetia
        19
    Prophetia  
       223 天前   ❤️ 1
    已经试了,目前看来成功。感谢教程。

    顺便补充一点步骤:

    我是先在 Mac 上用 NT 版已经用过一段时间了,有了一些聊天记录,按照楼主的步骤,会导致在 Mac NT 版本的一段时间聊天记录没有。

    所以我在第 2.2 步,把 Mac 的聊天记录放到 Win 的时候,除了 Msg3.0.db 以外,还把 Mac 上 nt_qq_xxxxxxxxxxxxxx 目录下的三个文件夹也拷贝到 Win 上;

    然后在 2.4 步,Win 安装 NT 版本后,把这三个文件夹放到 C:\Users<user name>\Documents\Tencent Files\<qq number>\nt_qq 这个目录下,再导入历史消息,这样新、旧聊天记录都合并到了 nt_qq 里面

    之后操作一样,现在已经用上完整的了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3774 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:52 · PVG 08:52 · LAX 16:52 · JFK 19:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.