Skip to content
This repository has been archived by the owner on Oct 10, 2024. It is now read-only.

转换主题数据时出错 #2

Open
LiweiDong opened this issue Nov 8, 2021 · 23 comments
Open

转换主题数据时出错 #2

LiweiDong opened this issue Nov 8, 2021 · 23 comments

Comments

@LiweiDong
Copy link

{"name":"xconvertq","hostname":"fad5fd1756a5","pid":67351,"components":"UserService","level":50,"msg":"Q用户表有除user_id = 1 之外的数据无法继续执行用户转换,请先删除再执行命令","time":"2021-11-08T12:51:01.384Z","v":0}
{"name":"xconvertq","hostname":"fad5fd1756a5","pid":67351,"components":"CategoryService","level":50,"msg":"Q分类表中有出默认分类外的数据,请先删除再执行命令","time":"2021-11-08T12:51:01.397Z","v":0}
{"name":"xconvertq","hostname":"fad5fd1756a5","pid":67351,"components":"AttachmentService","level":50,"msg":"Q附件表中有数据,请先删除再执行命令","time":"2021-11-08T12:51:01.409Z","v":0}

{"name":"xconvertq","hostname":"fad5fd1756a5","pid":67351,"components":"EmojiService","level":30,"msg":"表情转换完成,耗时不到 1 分钟","time":"2021-11-08T12:51:01.491Z","v":0}
[转换表情] 6/6 [================================================================================] 62/rps 100% 0.0s
构建用户缓存
跳过匿名贴2:159736
跳过匿名贴2:160617
跳过匿名贴2:114301
跳过匿名贴2:113874
跳过匿名贴2:116686
跳过匿名贴2:159034
跳过匿名贴2:162316
跳过匿名贴2:163210
。。。
用户不存在:920332
用户不存在:920333
用户不存在:920335
用户不存在:920336
用户不存在:920337
用户不存在:920338
用户不存在:920339
用户不存在:920345
用户不存在:920347
用户不存在:920351
用户不存在:920352
用户不存在:920353
[转换主题信息] 277418/357474 [==============================================================------------------] 3560/rps 77% 22.5s
/snapshot/xconvertq/node_modules/mysql2/lib/packets/packet.js:728
const err = new Error(message);
^

  • Cannot add or update a child row: a foreign key constraint fails (dzq.dzq_posts, CONSTRAINT dzq_posts_user_id_foreign FOREIGN KEY (user_id) REFERENCES dzq_users (id) ON DELETE SET NULL)
    at Packet.asError (/snapshot/xconvertq/node_modules/mysql2/lib/packets/packet.js:728:17)
    at Query.execute (/snapshot/xconvertq/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/snapshot/xconvertq/node_modules/mysql2/lib/connection.js:456:32)
    at PacketParser.onPacket (/snapshot/xconvertq/node_modules/mysql2/lib/connection.js:85:12)
    at PacketParser.executeStart (/snapshot/xconvertq/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket. (/snapshot/xconvertq/node_modules/mysql2/lib/connection.js:92:25)
    at Socket.emit (node:events:394:28)
    at addChunk (node:internal/streams/readable:315:12)
    at readableAddChunk (node:internal/streams/readable:289:9)
    at Socket.Readable.push (node:internal/streams/readable:228:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:199:23)

之前数据库有些数据丢失,所以很多帖子和用户没了。 不是会跳过不存在的用户么?

@LiweiDong
Copy link
Author

另外有没有方法可以清理已导入的数据? 没有的话只能用官方的php工具清理完再使用本工具重新导入。

@ZhaiSoul
Copy link
Member

ZhaiSoul commented Nov 8, 2021

直接操作数据库删掉表,然后重新安装一遍

@LiweiDong
Copy link
Author

直接操作数据库删掉表,然后重新安装一遍

你的意思 dzq重新安装一遍 在重新转换数据?

@ZhaiSoul
Copy link
Member

ZhaiSoul commented Nov 8, 2021

先使用数据库管理工具,把表都清理了,然后再DZQ重新安装一遍转换数据
你这个是之前DZQ站点已经有数据了,导致post表转换的时候出错了

@LiweiDong
Copy link
Author

先使用数据库管理工具,把表都清理了,然后再DZQ重新安装一遍转换数据 你这个是之前DZQ站点已经有数据了,导致post表转换的时候出错了

这个转换之前已经清理过了。 我在试一遍吧。

@LiweiDong
Copy link
Author

我DZQ是用的2.3.x的版本,以为官方转换工具是针对2.3制作的。

现在用本工具 是否可以使用最新的3.0版dzq进行操作?

@ZhaiSoul
Copy link
Member

ZhaiSoul commented Nov 8, 2021

我DZQ是用的2.3.x的版本,以为官方转换工具是针对2.3制作的。

现在用本工具 是否可以使用最新的3.0版dzq进行操作?

可以,目前就是在测试直接转到3.0

@bangbang93
Copy link
Member

另外有没有方法可以清理已导入的数据? 没有的话只能用官方的php工具清理完再使用本工具重新导入。

清理的功能我还没写,之后会考虑写

@LiweiDong
Copy link
Author

killed

dzq重新安装了。
转换帖子被killed 又试了了两次也是如此。

@bangbang93
Copy link
Member

你服务器有多少内存?

@LiweiDong
Copy link
Author

我在docker里跑的 没有做内存限制。 宿主机64G内存也没有跑满。

一小时前转换进度跑了很多 也没有出现这种情况。

[转换主题信息] 277418/357474 [==============================================================------------------] 3560/rps 77% 22.5s

@bangbang93
Copy link
Member

这个估计要看一下你的/var/log/message才能知道killed的原因了

@LiweiDong
Copy link
Author

这个估计要看一下你的/var/log/message才能知道killed的原因了

log路径? /var/log/message 不存在

@bangbang93
Copy link
Member

/var/log/messages,少打了个s

@LiweiDong
Copy link
Author

/var/log/messages 也是没有。 我重启了下docker 清理了mysql日志 又跑起来了。

[转换主题信息] 277443/357474 还是转换到这条的时候 出现之前的错误了。
Cannot add or update a child row: a foreign key constraint fails (q_jaycn_com.dzq_posts, CONSTRAINT dzq_posts_user_id_foreign FOREIGN KEY (user_id) REFERENCES dzq_users (id) ON DELETE SET NULL)

有没有办法跳过这条?

@bangbang93
Copy link
Member

你是不是SKIP_ANONYMOUS给的是false?

@LiweiDong
Copy link
Author

对 默认参数没改

@bangbang93
Copy link
Member

那给个true试试……官方转换工具是跳过匿名贴的,可能这功能还不是很完善

@LiweiDong
Copy link
Author

改成true还是一样的问题。

false的时候 也一直提示“跳过匿名贴2” 感觉我所有的帖子都被跳过了 ,然而现在thread表里只有101条数据。。

跳过匿名贴2:113874
跳过匿名贴2:114301
跳过匿名贴2:116686
跳过匿名贴2:159034
跳过匿名贴2:159736
跳过匿名贴2:160617
跳过匿名贴2:162316
跳过匿名贴2:163210
跳过匿名贴2:165857
跳过匿名贴2:169112
跳过匿名贴2:169837
跳过匿名贴2:171764
跳过匿名贴2:172636
跳过匿名贴2:175427
跳过匿名贴2:177293
跳过匿名贴2:177638
跳过匿名贴2:179009
跳过匿名贴2:179722
跳过匿名贴2:205125
跳过匿名贴2:208673
跳过匿名贴2:208977
跳过匿名贴2:210192
跳过匿名贴2:210724
跳过匿名贴2:212465
跳过匿名贴2:213103
跳过匿名贴2:213665
跳过匿名贴2:215107
跳过匿名贴2:215897
跳过匿名贴2:217616
跳过匿名贴2:217735
跳过匿名贴2:218052
跳过匿名贴2:218476
.....
用户不存在:920436
[转换主题信息] 277439/357474

@bangbang93
Copy link
Member

跳过匿名贴2是在dzx的forum_post表里找不见first=1的帖子,或者first=1的帖子没有authorid

@LiweiDong
Copy link
Author

没办法了,今天先这样吧 可能是之前的老数据丢失太严重了

@LiweiDong
Copy link
Author

刚试了下新的v1.1.3版本。
转换thread时 提示的了大量的跳过记录。
拿其中一条提示举例 ”用户不存在:919959“ ,是指用户uid=919959不存在 还是tid=919959不存在?

我在dzx的pre_ucenter_members用户表里查到有id=919959的记录。
pre_forum_thread表里也找到tid=919959的记录。

@bangbang93
Copy link
Member

bangbang93 commented Nov 10, 2021

刚试了下新的v1.1.3版本。 转换thread时 提示的了大量的跳过记录。 拿其中一条提示举例 ”用户不存在:919959“ ,是指用户uid=919959不存在 还是tid=919959不存在?

我在dzx的pre_ucenter_members用户表里查到有id=919959的记录。 pre_forum_thread表里也找到tid=919959的记录。

是tid
要先导入用户,因为dzq使用了外键约束,所以要先导入用户,才能导入后续的记录,即dzq的users表要有tid=919959的这条帖子的authorid

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants