男的舔女的下面视频在线播放-少妇愉情理仑片高潮日本-久久久久久国产一区二区三区-麻豆精品一区二区综合-国产精品超碰在线观看-网红极品女神精品视频在线-国产亚洲综合777-高清性视频一区二区播放-中文字幕第一页亚洲天堂

12下一頁
返回列表 發(fā)帖
查看: 272|回復(fù): 11

[BUG提交] discuz! X5.0 的數(shù)據(jù)庫導(dǎo)入問題

13

主題

80

回帖

2

粉絲

漸入佳境

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
產(chǎn)品版本
X5.0+
樓主
發(fā)表于 2026-3-28 08:48:06 |福建| 只看樓主 |倒序?yàn)g覽 |閱讀模式
本帖最后由 iwuyou 于 2026-3-29 11:23 編輯

已解決,官方升級(jí)程序的BUG,新增6個(gè)表的fields json 值時(shí),沒有設(shè)置默認(rèn)值為{},造成實(shí)際數(shù)據(jù)值為空,影響后續(xù)在高版本數(shù)據(jù)庫中正常使用。

如果服務(wù)器不升級(jí)數(shù)據(jù)庫,可能不會(huì)有影響。
如果要升級(jí)高版本數(shù)據(jù)庫,可以用以下方式先行修復(fù),以免數(shù)據(jù)庫在后續(xù)升級(jí)時(shí)或?qū)霐?shù)據(jù)時(shí),這6個(gè)表可能出錯(cuò)而無法導(dǎo)入。
  1. -- 對(duì)原庫進(jìn)行修復(fù)

  2. -- 批量修復(fù)表結(jié)構(gòu),設(shè)置默認(rèn)值為{}
  3. ALTER TABLE pre_common_member_profile_archive MODIFY COLUMN fields json NOT NULL DEFAULT '{}';
  4. ALTER TABLE pre_common_member_profile_history MODIFY COLUMN fields json NOT NULL DEFAULT '{}';
  5. ALTER TABLE pre_common_usergroup_field MODIFY COLUMN fields json NOT NULL DEFAULT '{}';
  6. ALTER TABLE pre_forum_forumfield MODIFY COLUMN fields json NOT NULL DEFAULT '{}';
  7. ALTER TABLE pre_home_docomment MODIFY COLUMN fields json NOT NULL DEFAULT '{}';
  8. ALTER TABLE pre_home_doing MODIFY COLUMN fields json NOT NULL DEFAULT '{}';

  9. -- 批量修復(fù)空值 '' 為合法JSON {}
  10. UPDATE pre_common_member_profile_archive SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  11. UPDATE pre_common_member_profile_history SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  12. UPDATE pre_common_usergroup_field        SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  13. UPDATE pre_forum_forumfield              SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  14. UPDATE pre_home_docomment                SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  15. UPDATE pre_home_doing                    SET fields = '{}' WHERE fields = '' OR fields IS NULL;
復(fù)制代碼



------------
這兩天在mariadb 10.11.16 導(dǎo)出數(shù)據(jù)庫后,在mariadb 11.8.6 測試導(dǎo)入數(shù)據(jù),會(huì)出現(xiàn)大量類似于以下的提示:
ERROR 4025 (23000) at line 7636520: CONSTRAINT `pre_common_member_profile_archive.fields` failed for `bbs`.`pre_common_member_profile_archive`。
應(yīng)該是外鍵有問題,是不是官方要使用更嚴(yán)格的規(guī)范數(shù)據(jù)庫內(nèi)容?

回復(fù)

使用道具 舉報(bào)

97

主題

613

回帖

20

粉絲

管理員

貢獻(xiàn)
28 點(diǎn)
金幣
70 個(gè)
產(chǎn)品版本
X5.0+
沙發(fā)
發(fā)表于 2026-3-28 08:49:14 |北京| 只看Ta
MYSQL兼容列表里沒有說支持這個(gè)數(shù)據(jù)庫
回復(fù)

使用道具 舉報(bào)

13

主題

80

回帖

2

粉絲

漸入佳境

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
產(chǎn)品版本
X5.0+
板凳
 樓主| 發(fā)表于 2026-3-28 09:00:48 |福建| 只看Ta
monkeye 發(fā)表于 2026-3-28 08:49
MYSQL兼容列表里沒有說支持這個(gè)數(shù)據(jù)庫

我現(xiàn)在用的是fedora server 43,用的是mariadb 10.11.16,使用discuz! X5.0正常。
下一個(gè)版本fedora server 44(下個(gè)月出正式版),將使用mariadb 11.8.6以上的版本,目前無法導(dǎo)入數(shù)據(jù)庫,會(huì)報(bào)錯(cuò)。
mariadb 11.8.6 采用更嚴(yán)格的規(guī)范,導(dǎo)致無法正常導(dǎo)入。
回復(fù)

使用道具 舉報(bào)

45

主題

6737

回帖

18

粉絲

應(yīng)用開發(fā)者

貢獻(xiàn)
666 點(diǎn)
金幣
1460 個(gè)
產(chǎn)品版本
X5.0+
QQ
地板
發(fā)表于 2026-3-28 09:26:56 |浙江| 只看Ta
iwuyou 發(fā)表于 2026-3-28 09:00
我現(xiàn)在用的是fedora server 43,用的是mariadb 10.11.16,使用discuz! X5.0正常。
下一個(gè)版本fedora serv ...

mariadb是基于mysql的,DZ的基礎(chǔ)邏輯是mysql,mariadb太高的版本暫時(shí)不能百分百保證。建議維持正常和mysql完全兼容的版本
回復(fù)

使用道具 舉報(bào)

6

主題

1653

回帖

4

粉絲

應(yīng)用開發(fā)者

貢獻(xiàn)
47 點(diǎn)
金幣
180 個(gè)
產(chǎn)品版本
X5.0+
QQ
5#
發(fā)表于 2026-3-28 10:06:23 |浙江| 只看Ta
使用mysql數(shù)據(jù)庫版本會(huì)兼容性好一點(diǎn)
回復(fù)

使用道具 舉報(bào)

13

主題

80

回帖

2

粉絲

漸入佳境

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
產(chǎn)品版本
X5.0+
6#
 樓主| 發(fā)表于 2026-3-28 17:08:52 |福建| 只看Ta
fedora server 系統(tǒng)版本升級(jí)很方便,可以直接升級(jí)。
mysql 出了商業(yè)版本以后,很多l(xiāng)inux系統(tǒng)默認(rèn)改用mariadb,不用mysql,怕mysql 全面商業(yè)化。
回復(fù)

使用道具 舉報(bào)

45

主題

6737

回帖

18

粉絲

應(yīng)用開發(fā)者

貢獻(xiàn)
666 點(diǎn)
金幣
1460 個(gè)
產(chǎn)品版本
X5.0+
QQ
7#
發(fā)表于 2026-3-28 17:17:47 |浙江| 只看Ta
iwuyou 發(fā)表于 2026-3-28 17:08
fedora server 系統(tǒng)版本升級(jí)很方便,可以直接升級(jí)。
mysql 出了商業(yè)版本以后,很多l(xiāng)inux系統(tǒng)默認(rèn)改用mariad ...

僅代表你個(gè)人意見,你要這么說,那一大堆數(shù)據(jù)庫等著接,話題就沒完了
回復(fù)

使用道具 舉報(bào)

13

主題

80

回帖

2

粉絲

漸入佳境

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
產(chǎn)品版本
X5.0+
8#
 樓主| 發(fā)表于 2026-3-28 20:49:19 |福建| 只看Ta
目前可能導(dǎo)入出錯(cuò)的原因,在于字段做了檢查限制:
CHECK (json_valid(`fields`)

如 pre_common_member_profile_archive 這個(gè)表中,有如下字段定義:

  1. `fields` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`fields`)),
復(fù)制代碼


重點(diǎn)是里面的 CHECK (json_valid(`fields`),對(duì)數(shù)據(jù)值進(jìn)行了限制。
而實(shí)際數(shù)據(jù)表中,fields 有大量空字符串,是不合格的值。應(yīng)該是在重新插入到高版本數(shù)據(jù)庫,CHECK (json_valid(`fields`) 觸發(fā)了BUG。

修復(fù)辦法:
sed -i 's/ CHECK (json_valid(`fields`))//g' /backup/bbs.sql

或者導(dǎo)出前對(duì)數(shù)據(jù)庫中相關(guān)表,有要求使用CHECK (json_valid(`fields`)的字段空值,進(jìn)行重新賦給合格的值{}。

@monkeye
回復(fù)

使用道具 舉報(bào)

13

主題

80

回帖

2

粉絲

漸入佳境

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
產(chǎn)品版本
X5.0+
9#
 樓主| 發(fā)表于 2026-3-28 21:15:36 |福建| 只看Ta
待測試以下代碼修復(fù)后的效果:

  1. USE bbs;
  2. SET FOREIGN_KEY_CHECKS=0;
  3. SET SQL_SAFE_UPDATES=0;

  4. -- 批量修復(fù)空值 '' 為合法JSON {}
  5. UPDATE pre_common_member_profile_archive SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  6. UPDATE pre_common_member_profile_history SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  7. UPDATE pre_common_usergroup_field        SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  8. UPDATE pre_forum_forumfield              SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  9. UPDATE pre_home_docomment                SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  10. UPDATE pre_home_doing                    SET fields = '{}' WHERE fields = '' OR fields IS NULL;

  11. SET SQL_SAFE_UPDATES=1;
  12. SET FOREIGN_KEY_CHECKS=1;

  13. SELECT '? 6張表全部修復(fù)完成!所有空值已變?yōu)楹戏↗SON' AS result;
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

13

主題

80

回帖

2

粉絲

漸入佳境

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
產(chǎn)品版本
X5.0+
10#
 樓主| 發(fā)表于 2026-3-29 06:45:09 |福建| 只看Ta
經(jīng)測試,用以下代碼修復(fù)原有的論壇,再導(dǎo)出的數(shù)據(jù),可以成功導(dǎo)入高版本 mariadb 11.8.6
也就是說,對(duì)要求使用json格式的字段,應(yīng)該修改其值為{},以防后續(xù)高版本數(shù)據(jù)庫的嚴(yán)格檢查。
  1. USE bbs;

  2. -- 批量修復(fù)空值 '' 為合法JSON {}
  3. UPDATE pre_common_member_profile_archive SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  4. UPDATE pre_common_member_profile_history SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  5. UPDATE pre_common_usergroup_field        SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  6. UPDATE pre_forum_forumfield              SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  7. UPDATE pre_home_docomment                SET fields = '{}' WHERE fields = '' OR fields IS NULL;
  8. UPDATE pre_home_doing                    SET fields = '{}' WHERE fields = '' OR fields IS NULL;

復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

  • 關(guān)注公眾號(hào)
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機(jī)版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號(hào) |皖公網(wǎng)安備34010302002376號(hào) )|網(wǎng)站地圖|star

GMT+8, 2026-4-18 00:06 , Processed in 0.153146 second(s), 11 queries , Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2026 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表