Moodle プラグインの更新を行っています。基本的に、データベース内の既存のテーブルにいくつかのフィールドを追加するだけです。
upgrade.php
XMLDB エディターから作成したものを次に示します。
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;
}
install.xml ファイルも更新しました。アップグレードの妨げになるかどうかはわかりませんが、プラグインの新規ユーザーのみを対象としています。
次に、バージョン番号を変更しversion.php
て更新を実行しますが、常に次のエラーに直面しています。
Fatal error: Call to undefined function xmldb_solib_upgrade() in /var/www/moodle/lib/upgradelib.php on line 629
これは Moodle のバグではなく、何かが欠けていると思います。しかし、何?私は何か間違ったことをしましたか?