使用install.xml文件从插件在moodle中创建新表

使用install.xml文件从插件在moodle中创建新表,moodle,Moodle,我已经创建了一个插件“tutory”,并从moodle/blocks目录安装到moodle(2.5.2)中。之后,我尝试从新插件(教程)创建一些表。我已经在/db/目录中创建了install.xml文件,并在version.php文件中更改了版本。当我更新我的学费插件时,它显示插件已成功更新,但它不会创建任何表。我已将install.xml文件附加到此处 请告诉我更新插件的问题出在哪里 <?xml version="1.0" encoding="UTF-8" ?> <X

我已经创建了一个插件“tutory”,并从moodle/blocks目录安装到moodle(2.5.2)中。之后,我尝试从新插件(教程)创建一些表。我已经在/db/目录中创建了install.xml文件,并在version.php文件中更改了版本。当我更新我的学费插件时,它显示插件已成功更新,但它不会创建任何表。我已将install.xml文件附加到此处

请告诉我更新插件的问题出在哪里

    <?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="mod/label/db" VERSION="20060905" COMMENT="XMLDB file for Moodle mod/label"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
>
  <TABLES>

<TABLE NAME="block_tuition_comments">
      <FIELDS>
        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="instanceid"/>
        <FIELD NAME="instanceid" TYPE="char" LENGTH="20" NOTNULL="false" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="createdbyid"/>
        <FIELD NAME="createdbyid" TYPE="int" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" ENUM="false" PREVIOUS="instanceid" NEXT="dt"/>
        <FIELD NAME="dt" TYPE="datetime" NOTNULL="false" SEQUENCE="false" ENUM="false" PREVIOUS="createdbyid" NEXT="message"/>
        <FIELD NAME="message" TYPE="char" LENGTH="300" NOTNULL="false" SEQUENCE="false" ENUM="false" PREVIOUS="dt"/>
      </FIELDS>
      <KEYS>
        <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
      </KEYS>
    </TABLE>

  </TABLES>

</XMLDB>


install.xml文件的一部分

如果插件已安装,则install.xml将被忽略

您可以手动删除该版本,使其像新安装一样—只在开发中执行此操作,而不在生产中执行

找到正确的记录并将其删除

SELECT * from mdl_config_plugins
WHERE plugin like '%tution%'
AND name = 'version'
或者,如果你的插件已经在一个实时站点上,那么你需要创建一个db/upgrade.php文件

查看moodle中的现有代码以获取示例

还有一点需要注意,您不应该自己编写install.xml文件,而应该使用xmldb编辑器——这还可以生成php代码,您可以在upgrade.php文件中使用这些代码


您将在站点管理->开发->xmldb编辑器中找到它,如果您在插件安装后进行了更改,那么更改将不会反映出来,您需要卸载/删除插件(不需要从moodle中删除代码),然后在站点上运行通知。您将看到插件安装在页面中,完成该过程后,所有内容都将更新

在您的站点中通过以下路径卸载/删除插件

主页► 现场管理► 插件► 阻碍► 管理块

此路径因插件类型而异


在这里您将获得块列表,每个块都有删除选项。

如果插件已经安装,那么install.xml将被忽略。 您在插件安装后进行了任何更改,这些更改将不会反映出来。 install.xml文件仅在新安装插件时更新数据库。 你必须卸载/删除你的插件。在卸载插件之前,您必须在另一个位置复制插件文件夹(教程)。您可以从以下路径卸载插件

家► 现场管理► 插件► 阻碍► 管理块

完成卸载插件后,再次将此文件夹移动到块文件夹中。现在您可以按照下面的路径重新安装插件

家► 现场管理► 插件► 阻碍► 通知

成功安装后,您将在数据库中找到表