我的网站模块的install.sql
文件夹中有以下文件/sql
。我正在从模块的.xml
文件中引用它,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5" client="site" method="install">
<name>bbb Referral</name>
<author>AAA Media</author>
<creationDate>23/02/2012</creationDate>
<copyright>Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later</license>
<authorEmail>info@AAA</authorEmail>
<authorUrl>AAA</authorUrl>
<version>1.0</version>
<description>bbb Referral</description>
<files>
<filename module="mod_bbb_referral">mod_bbb_referral.php</filename>
<folder>tmpl</folder>
<filename>index.html</filename>
<filename>mod_bbb_referral.xml</filename>
</files>
<install folder="site">
<sql>
<file driver="mysql" charset="utf8">sql/install.sql</file>
</sql>
</install>
<languages folder="language/en-GB">
<language tag="en-GB">en-GB.ini</language>
</languages>
<config>
<fields name="params">
<fieldset name="basic">
<field name="header_text" type="textarea" default="" label="Header text" description="Header text to show before friends list" />
<field name="footer_text" type="textarea" default="" label="Footer text" description="Footer text to show below friends list" />
<field name="body_text" type="textarea" default="" label="Body text"
description="Body text to include in referral" />
<field name="thankyou_text" type="textarea" default="" label="Thank you text"
description="Thank you text to show when successful" />
<field name="error_text" type="textarea" default="Error encountered. Please try again later." label="Error text"
description="Error text to show if share was not successful in any way." />
<field name="socialgraph_url" type="text" default="" size="60" label="Social Graph request URL"
description="URL to access when getting user's friend list, leave {filter}, {skip} and {count} in URL, they will be replaced upon run-time." />
<field name="socialgraph_filter" type="text" default="@Friends" label="Social Graph list filter"
description="Filter to use when getting list." />
<field name="socialgraph_page_count" type="text" default="" label="Friends per page" description="Default is 26, leave empty to use default" />
<field name="socialgraph_oauth_scope" type="text" default="graph/read" label="OAuth scope" description="Separated by a {space}. DO NOT CHANGE if you're unsure." />
</fieldset>
</fields>
</config>
</extension>
但它特别不执行/sql
中包含的表的创建部分:
CREATE TABLE IF NOT EXISTS `#__oauth_api_log` (
`id` int(11) unsigned NOT NULL auto_increment,
`tracking_session_id` int(11) unsigned NOT NULL,
`type` char(20) default '',
`api_request` mediumtext,
`api_response` mediumtext,
`api_result` mediumtext,
`execution_time` float default '-1',
`date_time` timestamp NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
记录需要此表。
感谢任何帮助/指示。
答案 0 :(得分:1)
如果您查看XML,您将看到以下内容:
<install folder="site">
这意味着它正在寻找:
site/sql/install.sql
如此简单,请删除folder="site"
希望这有帮助
答案 1 :(得分:0)
我可以想到一些可能的问题。
在安装尝试之间,您没有正确卸载模块,因此install
SQL未运行。
SQL文件未保存为UTF8 NO BOM(虽然这会导致错误#1064被抛出)
路径未正确计算(再次,这通常会引发错误)
你可能有一个SQL bug,你说“它专门没有执行表的创建部分”,这是否意味着文件中还有其他SQL你是没有显示可能有错误?
如果您没有看到任何错误,我建议您确保Global Configuration->Server
Error Reporting
设置为Development
,Global Configuration->System
设Debug System
Yes
1}}设置为configuration.php
。
开发错误报告 - 会将public $error_reporting = 'development';
文件中的值设置为
configuration.php
并导致您看到PHP发现的每个错误。
NB。有时,如果您的错误足够糟糕,您将无法访问您的网站,在这种情况下,请修改$error_reporting = 'none'
并恢复为configuration.php
调试系统 - 会将public $debug = '1';
文件中的值设置为
Joomla! Debug Console
并将Database Queries
添加到每个页面的底部:
NB。名为debug
的部分将显示网站处于{{1}}模式时记录的任何SQL,然后您可以查看它们以查看发生了什么...即你的SQL是否运行...
如果这些都没有帮助,但您获得了任何其他详细信息,例如错误,请将其添加到您的问题中,我会尝试进一步提供帮助。
答案 2 :(得分:0)
我花了很多时间来解决这个问题。我找到了解决方案:
在files标签中声明它们:
(filename)install.mysql.utf8.sql(/filenam)
(filename)uninstall.mysql.utf8.sql(/filename)
并添加安装/卸载标记:
(install)
(sql)
(file charset="utf8" driver="mysql")install.mysql.utf8.sql(/file)
(/sql)
(/install)
(uninstall)
(sql)
(file charset="utf8" driver="mysql")uninstall.mysql.utf8.sql(/file)
(/sql)
(/uninstall)
不是很干净,但我不想浪费更多时间寻找正确的道路