Magento Module安装SQL未运行

时间:2011-06-30 15:28:09

标签: mysql magento install

我编写了一个模块,它拒绝在我的mysql4-install-1.0.0.php文件中创建表格的空白....但只在实时服务器上。

有趣的是,在我的本地计算机(它是实时服务器的镜像(即相同的文件结构等))上,安装正确运行并创建表。

基于文件是否相同的事实,我可以假设它是服务器配置和/或权限问题?我到处寻找,我发现任何日志文件(PHP,MySQL,Apache,Magento)都没有问题。

我可以在测试脚本中创建表格(使用core_read / write)。

之前有人看过这个吗?

由于

**编辑**两种环境之间的一个主要区别是,在实时服务器上MySQL是远程的(不是localhost)。开发服务器是localhost。这会导致问题吗?

5 个答案:

答案 0 :(得分:5)

  1. 您的安装脚本是安装在实时服务器上的模块吗? (app / etc / modules /中的XML文件,Module List Module用于调试。)

  2. 您的模块的core_resource表中是否已有记录?如果是,请将其删除以将脚本设置为重新运行。

  3. 如果文件名称正确? _modifyResourceDb中的app/code/core/Mage/Core/Model/Resource/Setup.php方法是此文件包含/运行的位置。阅读more here

答案 1 :(得分:3)

可能是一个权限问题 - 面向公众的代码使用的MySQL帐户应该拥有尽可能少的权限,但仍然可以让它完成工作,这通常不允许创建/更改/删除表。

使用你用mysql连接的任何用户名,然后执行:

SELECT User, Host
FROM mysql.user
WHERE User='your username here';

这将显示可用于该特定用户名的用户@主机组合,然后您可以通过

获得实际权限
show grants for username@host;

对live和devlopment服务器上的两个帐户执行此操作,这将显示实时系统中缺少的权限。

答案 2 :(得分:1)

在Admin-> System-> Advanced部分,您的模块是否存在并已启用?

您是否真的将模块拆包到正确的空间,例如app / code / local / yourcompany / yourmodule?

你有app / etc / modules / yourmodule.xml - 我相信这可能是被忽视的文件引起你的问题。

答案 3 :(得分:1)

缓存可能是罪魁祸首,如果您手动删除模块的core_resource行以便再次运行安装程序sql,则还必须刷新缓存

dev和生产服务器之间的区别可能就是缓存设置,这可以解释为什么你只在生产中看到这个

答案 4 :(得分:0)

对我来说,使用Windows进行开发时出现了问题。 Linux系统区分大小写。在我的config.xml中,设置部分的名称为camelCase,而文件夹的名称为all-lowercase。使它们相同会使脚本运行。