Модуль установки Magento SQL не работает - PullRequest
4 голосов
/ 30 июня 2011

Я написал модуль, который категорически отказывается создавать таблицы в моем файле mysql4-install-1.0.0.php .... но только на работающем сервере.

Самое смешное, что на моем локальном компьютере (который является зеркалом живого сервера (т. Е. Идентичная файловая структура и т. Д.)) Установка выполняется правильно, и таблица создается.

Итак, основываясь на том факте, что файлы одинаковы, могу ли я предположить, что это проблема конфигурации сервера или разрешений? Я искал везде, и я не могу найти проблем ни в одном из файлов журнала (PHP, MySQL, Apache, Magento).

Я могу создавать таблицы нормально в тестовых скриптах (используя core_read / write).

Кто-нибудь видел это раньше?

Спасибо

** РЕДАКТИРОВАНИЕ ** Основное различие между двумя средами заключается в том, что на реальном сервере MySQL является удаленным (не локальным). Сервер разработчика - это localhost. Может ли это вызвать проблемы?

Ответы [ 4 ]

5 голосов
/ 30 июня 2011
  1. Является ли модуль, частью которого является ваш установочный скрипт, установлен на работающем сервере?(Файл XML в app / etc / modules /, Модуль списка модулей для отладки.)

  2. Есть ли уже запись в таблице core_resource для вашего модуля?Если это так, удалите его, чтобы перезапустить сценарий.

  3. Если файл указан правильно?В методе _modifyResourceDb в app/code/core/Mage/Core/Model/Resource/Setup.php этот файл используется для включения / запуска.Читать подробнее здесь

3 голосов
/ 30 июня 2011

Вероятно, проблема с разрешениями - учетная запись MySQL, используемая общедоступным кодом, должна иметь как можно меньше разрешений, которые все же позволяют ей выполнять свою работу, что, как правило, НЕ позволяет создавать / изменять / удалять таблицы.

Возьмите любое имя пользователя, с которым вы подключаетесь к mysql, и выполните:

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

Это покажет вам комбинации user @ host, доступные для этого конкретного имени пользователя, затем вы можете получить действительные разрешения с помощью

show grants for username@host;

Сделайте это для двух учетных записей на сервере live и devlopment, который покажет вам, какие разрешения отсутствуют в действующей системе.

1 голос
/ 17 марта 2013

кеш может быть причиной, если вы вручную удалили строку core_resource для вашего модуля, чтобы снова запустить настройку sql, вам также нужно очистить кеш

, вероятно, разница между dev и productionсерверы - это настройки кеша, это объясняет, почему вы видите это только в рабочей среде

1 голос
/ 30 июня 2011

В разделе Admin-> System-> Advanced ваш модуль присутствует и включен?

Вы действительно распаковали свой модуль в нужное место, например app / code / local / yourcompany / yourmodule?

Есть ли у вас приложение / etc / modules / yourmodule.xml - я полагаю, что это может быть пропущенный файл, вызывающий вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...