在moodle的install.xml中安装新插件时是否可以更改表?

时间:2015-05-28 18:03:45

标签: moodle

基本上,我需要在课程表中添加一个新列。

我不知道如何进行此更改,然后将模块导出到其他学校

不在每个学校的每个数据库中执行“alter table”查询

谢谢!

1 个答案:

答案 0 :(得分:1)

对于全新安装,您可以使用install.php来更改课程表等核心表。 Install.php在install.xml之后立即调用。

首先获取添加字段代码

转到网站管理员 - >发展 - > xmldb编辑器

加载并编辑lib / db

然后编辑课程表并添加新字段。 不要保存它。

然后去查看php代码,选择使用新字段添加字段,然后查看。

在开始和结束时复制没有升级位的代码。然后将其添加到local/yourplugin/db/install.php,因此您应该有这样的内容:

defined('MOODLE_INTERNAL') || die;

function  xmldb_local_yourplugin_install() {
    global $DB;

    $dbman = $DB->get_manager();

    // Define field newfield to be added to course.
    $table = new xmldb_table('course');
    $field = new xmldb_field('newfield', XMLDB_TYPE_INTEGER, '1', null, null, null, null, 'cacherev');

    // Conditionally launch add field newfield.
    if (!$dbman->field_exists($table, $field)) {
        $dbman->add_field($table, $field);
    }
}