4

我创建了一个插件“tuition”并将其安装在moodle/blocks 目录中的moodle(2.5.2) 中。之后,我尝试从新插件(学费)创建一些表。我在tutorial/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 文件的一部分

4

3 回答 3

3

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

您可以手动删除版本,使其就像全新安装一样 - 仅在开发中执行此操作,而不是在生产中。

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

SELECT * from mdl_config_plugins
WHERE plugin like '%tution%'
AND name = 'version'

或者,如果您的插件已经在实时站点上,那么您将需要创建一个 db/upgrade.php 文件

http://docs.moodle.org/dev/Upgrade_API#The_files_you_need_for_the_second_release

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

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

http://docs.moodle.org/dev/XMLDB_editor

您将在站点管理 -> 开发 -> xmldb 编辑器中找到它

于 2013-10-04T19:12:37.487 回答
0

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

主页 ► 网站管理 ► 插件 ► 区块 ► 管理区块

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

主页 ► 网站管理 ► 插件 ► 区块 ► 通知

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

于 2014-07-05T03:47:32.563 回答
0

如果您在插件安装后进行了更改,则不会反映更改,您需要卸载/删除插件(不需要从moodle中删除代码)然后在现场运行通知。您将看到要在页面中安装的插件完成该过程,所有内容都将更新。

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

主页 ► 网站管理 ► 插件 ► 区块 ► 管理区块

此路径因插件类型而异。

在这里您将获得块列表,删除选项将与每个块一起出现。

于 2013-11-07T10:44:41.333 回答