2013-05-15 41 views
0

当我安装或更新新组件时,我的SQL文件未被执行。最初我发现我的同事需要将他的SQL文件直接执行到PHPMyAdmin,但不是Joomla!应该自动运行文件?Joomla!2.5在安装/更新时未执行SQL文件

下面是我如何设置我的XML:

ReforcoDigital.xml

<?xml version="1.0" encoding="utf-8"?> 
<extension type="component" version="2.5.0" client="site" method="upgrade"> 
<name>Reforco Digital</name> 
<author>Rodrigo Pereira</author> 
<creationDate>14/05/2013</creationDate> 
<copyright>Copyright</copyright> 
<license>Licença</license> 
<authorEmail>[email protected]</authorEmail> 
<authorUrl>http://www.site.com</authorUrl> 
<version>0.1</version> 
<description>Sistema de Reforço Digital</description> 

<install> 
    <sql> 
     <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file> 
    </sql> 
</install> 

<update> 
    <schemas> 
     <schemapath type="mysql">sql/updates/mysql</schemapath> 
    </schemas> 
</update> 

<files folder="site"> 
    <folder>language</folder> 
    <folder>models</folder> 
    <folder>views</folder> 
    <filename>reforcodigital.php</filename> 
    <filename>controller.php</filename> 
    <filename>index.html</filename> 
</files> 

<administration> 
    <menu>Reforco Digital</menu> 
    <files folder="admin"> 
     <folder>sql</folder> 
     <folder>views</folder> 
     <filename>controller.php</filename> 
     <filename>reforcodigital.php</filename> 
     <filename>index.html</filename> 
    </files> 
</administration> 
</extension> 

文件夹管理员/ SQLinstall.mysql.utf8.sql文件,管理/ sql/updates/mysql有文件0.1.sql;两者都有相同的SQL代码。我可能在这里错过了什么?

+0

有完全相同的问题。安装和卸载sql运行得很好 - 但不能更新。您发布的代码(同样,我使用)是完全一样的文档描述它(和示例显示) – Michael

回答

0

我刚才评论说我和你有同样的问题,但我不是。在我解释你的文件发生了什么后,我会描述一个完全不同的问题。因此,你的sql文件夹驻留在你的管理组件文件夹(这是正常的),但你的安装/卸载sql XML条目不描述这一点。所以,我相信,如果你做出这样的改变,你会发现它按预期工作:

<install> 
    <sql folder="admin"> 
     <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file> 
    </sql> 
</install> 

我的问题是,当#__schema表中存在的模式更新部分将只执行更新模式 - 并且install.sql在更新时不执行。因此,如果您要升级扩展并添加表格,除非您的扩展在更新之前已经有表格,否则您无法真正依靠XML安装程序来创建新表格。

我打算用install.php文件搜索并在必要时创建表。

0

事实上,我一遍又一遍地用0.1.sql更新我的组件。将文件名更改为0.2.sql并完成了这项工作。

我的理解是Joomla!将按字母顺序查找更新文件,并判断该版本是否已被使用;纠正我,如果这是错误的。由于版本高于0.1,它完成了这项工作。

+0

你也改变your_module.xml文件的版本号为最新? –

相关问题