Moodle 升级时调用upgradelib.php中未定义的函数

Moodle 升级时调用upgradelib.php中未定义的函数,moodle,Moodle,我正在更新Moodle插件。基本上,我只想向数据库中的现有表添加一些字段 下面是我从XMLDB编辑器构建的upgrade.php: function xmldb_qtype_myqtype_upgrade($oldversion = 0) { global $DB; $dbman = $DB->get_manager(); $result = true; if ($oldversion < 2013031601) { // Define table solib to b

我正在更新Moodle插件。基本上,我只想向数据库中的现有表添加一些字段

下面是我从XMLDB编辑器构建的
upgrade.php

function xmldb_qtype_myqtype_upgrade($oldversion = 0) {
global $DB;
$dbman = $DB->get_manager();

$result = true;

if ($oldversion < 2013031601) {

    // Define table solib to be created
    $table = new xmldb_table('solib');

    // Adding fields to table solib
    $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
    $table->add_field('course', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0');
    $table->add_field('name', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null);
    $table->add_field('timestamp', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
    $table->add_field('server_addr', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null);
    $table->add_field('access_token', XMLDB_TYPE_INTEGER, '20', null, XMLDB_NOTNULL, null, null);

    // Adding keys to table solib
    $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));

    // Conditionally launch create table for solib
    if (!$dbman->table_exists($table)) {
        $dbman->create_table($table);
    }

    // solib savepoint reached
    upgrade_mod_savepoint(true, 2013031601, 'solib');
}

return $result;
}
我想这不是一个Moodle bug,我遗漏了一些东西。但是什么呢?我做错什么了吗?

问题解决了

xmldb_qtype_myqtype_upgrade()
需要定义为:

xmldb_solib_upgrade() // plugin name as 'qtype_myqtype'
我不理解这个错误的主要原因是它位于
/moodle/lib/upgradelib.php
中,而不是转储文件:
/moodle/mod/solib/db/upgrade.php
。这个精度在文档中也不是很清楚。

解决了

xmldb_qtype_myqtype_upgrade()
需要定义为:

xmldb_solib_upgrade() // plugin name as 'qtype_myqtype'
我不理解这个错误的主要原因是它位于
/moodle/lib/upgradelib.php
中,而不是转储文件:
/moodle/mod/solib/db/upgrade.php
。这个精度在文档中也不是很清楚