簡體   English   中英

Magento 模塊安裝 SQL 未運行

[英]Magento Module install SQL not running

我已經編寫了一個模塊,它拒絕在我的 mysql4-install-1.0.0.php 文件中創建表......但僅在實時服務器上。

有趣的是,在我的本地機器(它是實時服務器的鏡像(即相同的文件結構等))上,安裝正確運行並創建了表。

因此,基於文件相同的事實,我可以假設這是服務器配置和/或權限問題嗎? 我到處查看,在任何日志文件(PHP、MySQL、Apache、Magento)中都找不到任何問題。

我可以在測試腳本中創建表格(使用 core_read/write)。

有人以前看過這個嗎?

謝謝

** 編輯 ** 兩種環境之間的一個主要區別是,在實時服務器上,MySQL 是遠程的(不是本地主機)。 開發服務器是本地主機。 這會導致問題嗎?

  1. 您的安裝腳本所屬的模塊是否安裝在實時服務器上? (在 app/etc/modules/ 中的 XML 文件,用於調試的模塊列表模塊。)

  2. 您的模塊的core_resource表中是否已有記錄? 如果是這樣,請將其刪除以將您的腳本設置為重新運行。

  3. 如果你的文件命名正確? app/code/core/Mage/Core/Model/Resource/Setup.php中的_modifyResourceDb方法是包含/運行此文件的位置。 在這里閱讀更多

可能是權限問題 - 面向公眾的代碼使用的 MySQL 帳戶應該具有盡可能少的權限,但仍然可以完成工作,這通常不允許創建/更改/刪除表。

使用您連接到 mysql 的任何用戶名,然后執行以下操作:

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

這將向您顯示該特定用戶名可用的 user@host 組合,然后您可以獲得實際權限

show grants for username@host;

對 live 和 devlopment 服務器上的兩個帳戶執行此操作,這將顯示 live 系統缺少哪些權限。

緩存可能是罪魁禍首,如果您手動刪除模塊的 core_resource 行以使設置 sql 再次運行,您還必須刷新緩存

開發服務器和生產服務器之間的區別可能是緩存設置,這可以解釋為什么你只在生產中看到這個

在 Admin->System->Advanced 部分中,您的模塊是否存在並啟用?

您是否真的將您的模塊解壓到正確的空間,例如 app/code/local/yourcompany/yourmodule?

你有 app/etc/modules/yourmodule.xml - 我相信這可能是導致你的問題的被忽視的文件。

對我來說,這個問題出現在使用 Windows 進行開發。 Linux 系統區分大小寫。 在我的config.xml中,設置部分被命名為camelCase而文件夾被命名為all-lowercase 使它們相同使腳本運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM