使用install.xml文件从插件在moodle中创建新表
我已经创建了一个插件“tutory”,并从moodle/blocks目录安装到moodle(2.5.2)中。之后,我尝试从新插件(教程)创建一些表。我已经在/db/目录中创建了install.xml文件,并在version.php文件中更改了版本。当我更新我的学费插件时,它显示插件已成功更新,但它不会创建任何表。我已将install.xml文件附加到此处 请告诉我更新插件的问题出在哪里使用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
<?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文件仅在新安装插件时更新数据库。 你必须卸载/删除你的插件。在卸载插件之前,您必须在另一个位置复制插件文件夹(教程)。您可以从以下路径卸载插件 家► 现场管理► 插件► 阻碍► 管理块 完成卸载插件后,再次将此文件夹移动到块文件夹中。现在您可以按照下面的路径重新安装插件 家► 现场管理► 插件► 阻碍► 通知 成功安装后,您将在数据库中找到表