2011-06-30 78 views
4

我寫了拒絕空白點創建我mysql4安裝-1.0.0.php文件中的表格模塊....但只有活的服務器上。Magento的模塊安裝SQL不運行

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

所以基於這樣的事實,該文件是相同的我可以假定它是一個服務器的配置和或權限問題?我到處尋找,在任何日誌文件(PHP,MySQL,Apache,Magento)中都找不到任何問題。

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

任何人都看到過嗎?

由於

**編輯** 2和環境之間的一個主要區別是,現場服務器上的MySQL是遠程(未本地主機)。 dev服務器是localhost。這可能會導致問題嗎?

+0

你可以添加其他模塊,例如開發人員工具欄或其他已知不會搞砸系統的東西?如果是這樣的話,那麼問題出在你的模塊上,而不是MySQL的設置等。 –

+0

Magento的後續版本(1.6+我認爲)尋找一個install-1.0.0.php文件,而不是mysql4-install-1.0.0。 PHP文件。 –

回答

3

可能是一個權限問題 - 使用面向公衆的代碼應該儘可能少的權限可能仍然讓它完成工作,一般不允許建立/變更/刪除表一個MySQL賬戶。

採取任何的用戶名要連接一起MySQL和做:

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

這將顯示您可以針對特定用戶名的用戶@主機連擊,那麼你就可以得到

實際權限
show grants for [email protected]; 

這樣做對兩個帳戶的直播和開發芻議服務器上,它會告訴你什麼權限是從現場系統中丟失。

+0

感謝您的回覆。現場系統對我的用戶有GRANT ALL,所以我猜MySQL的權限已經足夠了。不過謝謝。 – sulman

+0

我認爲這不符合標準,因爲Magento使用自己的連接器訪問數據庫。 –

+0

magento如何連接並不重要,如果是權限問題,那麼這就是您如何比較兩個系統之間的權限集。僅僅因爲magento有自己的連接器並不意味着它可以奇蹟般地繞過MySQL授權系統。 –

1

在管理 - >系統 - >高級部分是您的模塊存在和啓用?

您是否確實將模塊打開到正確的空間,例如: app/code/local/yourcompany/yourmodule?

你有應用程序的/ etc /模塊/ yourmodule.xml - 我認爲,這可能是忽略的文件引起您的問題。

+0

感謝您的回覆。是的,一切似乎都正確解壓,並且模塊正確顯示在管理員中。如前所述,文件結構與開發者服務器相同,並且正確安裝。謝謝。 – sulman

+0

它已經註冊了嗎?打開phpmyadmin並搜索你的模塊名稱。它將在配置表中,只是一個關鍵。把它拿出來,然後它應該神奇地自行安裝。 –

5
  1. 您的安裝腳本是在活動服務器上安裝的一部分的模塊嗎? (用於調試的應用程序/ etc/modules /中的XML文件,Module List Module)。

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

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

+0

謝謝Alan。 1)是的,我相信所有需要的模塊文件都已正確安裝在活動服務器上(因爲它是從開發服務器複製的)。 2)我正在刪除db中的列表來測試。 3)我會看看這個功能和調試。謝謝 – sulman

1

緩存可能是罪魁禍首,如果你手動刪除您的模塊core_resource行,以便再次製作安裝SQL運行,你也必須清空緩存

大概差開發和生產服務器之間的緩存設置,這將解釋爲什麼你只看到這在生產