打开编辑模式时记录无效 - Moodle 4.3

问题描述 投票:0回答:1

我最近将 Moodle 升级到版本 4.3,但当我尝试激活它时,编辑模式选项显示错误。平台更新没有显示错误;在之前的版本3.9中,它可以正常工作。这是系统的核心模块,应该采用什么方案呢?

SELECT * FROM {external_functions} WHERE name = ?
[array (
  0 => 'core_change_editmode',
)]
Error code: invalidrecord
* line 1658 of /lib/dml/moodle_database.php: dml_missing_record_exception thrown
* line 1634 of /lib/dml/moodle_database.php: call to moodle_database->get_record_select()
* line 56 of /lib/external/classes/external_api.php: call to moodle_database->get_record()
* line 186 of /lib/external/classes/external_api.php: call to core_external\external_api::external_function_info()
* line 83 of /lib/ajax/service.php: call to core_external\external_api::call_external_function()

我已经调试了变量,我认为“external_functions”表中缺少这个插件,但我还没有看到如何修复它

moodle moodle-api
1个回答
0
投票

记录缺失似乎很奇怪 - Moodle 4.0 添加了

core_change_editmode
服务

commit 09f6ce9fed752e47fc719228032aab075c526c09
Author: Bas Brands <[email protected]>
Date:   Tue Jul 6 10:01:05 2021 +0200

    MDL-71610 theme_boost: add a edit mode switch

该记录应该是在升级到4.3的过程中创建的

我会尝试在本地/开发站点上重新运行升级,并备份 3.9 站点。但是将调试切换到开发人员级别并检查错误。

config.php
中添加

@error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS!
@ini_set('display_errors', '1');    // NOT FOR PRODUCTION SERVERS!
$CFG->debug = (E_ALL | E_STRICT);   // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS!
$CFG->debugdisplay = 1;             // NOT FOR PRODUCTION SERVERS!

如果没有错误,重新运行后检查记录是否存在

SELECT *
FROM mdl_external_functions
WHERE name = 'core_change_editmode'

如果不存在,则 Moodle 存在问题

如果确实存在,那么升级后发生了一些事情

© www.soinside.com 2019 - 2024. All rights reserved.