Nano Hash - криптовалюты, майнинг, программирование

Пользовательская таблица базы данных не отображается в Magento

Я создал собственный модуль с пользовательской таблицей базы данных для хранения/выборки значений. Я следовал следующей структуре каталогов, но моя таблица все равно не отображается в базе данных. Любые идеи относительно того, почему

app/code/local
Namespace
 Module
   Block

   controllers
     IndexController.php

   etc
     config.xml

   Helper
     Data.php

   Model
     Module.php
     Observer.php
     Mysql4
       Module.php
       Module
         Collection.php

   sql
     module_setup
        mysql4-install-0.1.0.php

   app/etc
      Namespace_Module.xml

Это мой config.xml

<config>    
<modules>
    <Namespace_Module>
        <version>0.1.0</version>
    </Namespace_Module>
</modules>
<global>
<helpers>
    <module>
        <class>Namespace_Module_Helper</class>
    </module>
</helpers>  
<models>
    <module>
        <class>Namespace_Module_Model</class>
    <resourceModel>module_mysql4</resourceModel>
    </module>
    <module_mysql4>
        <class>Namespace_Module_Model_Mysql4</class>
        <entities>
            <module>
                <table>module</table>
            </module>
        </entities>
    </module_mysql4>
 </models>
<resources>
        <module_setup>
            <setup>
                <module>Namespace_Module</module>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </module_setup>
        <module_write>
            <connection>
                <use>core_write</use>
            </connection>
        </module_write>
        <module_read>
            <connection>
                <use>core_read</use>
            </connection>
        </module_read>
    </resources>
    <blocks>
        <module>
            <class>Namespace_Module_Block</class>
        </module>
    </blocks>
 </global>
 <crontab>
<jobs>
<send_reviews_email>
    <schedule><cron_expr>*/5 * * * *</cron_expr></schedule>
    <run><model>module/observer::sendReviewsEmail</model></run>
</send_reviews_email>
</jobs>
 </crontab>
 <frontend>
   <routers>
     <module>
        <use>standard</use>
        <args>
            <module>Namespace_Module</module>
            <frontName>module</frontName>
        </args>
      </module>
    </routers>
  </frontend>       
</config>

Это мой mysql4-install-0.1.0.php

<?php
  $installer = $this;
  $installer->startSetup();
  $installer->run("
  -- DROP TABLE IF EXISTS {$this->getTable('cronemails')};
  CREATE TABLE {$this->getTable('cronemails')} (
  `cronemails_id` int(11) unsigned NOT NULL auto_increment,
  `order_id` varchar(255) default '',
  `order_email_id` varchar(255) default '',
  `review_request` smallint(6) NOT NULL default '0',
  `coupon_sent` smallint(6) NOT NULL default '0',
  PRIMARY KEY (`cronemails_id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    ");
  $installer->endSetup();

  • Вы настроили настройку в своем config.xml? 20.12.2011
  • Да, у меня есть. Но он не отображается в таблице core_resources. 20.12.2011
  • вставьте его сюда, чтобы мы могли проверить, нет ли ошибки 20.12.2011
  • а также вставьте содержимое mysql4-install-0.1.0.php 20.12.2011
  • Я отредактировал свой вопрос, чтобы разместить config.xml n mysql4-install-0.1.0.php. Пожалуйста, посмотрите и посмотрите, можете ли вы помочь мне обнаружить какую-либо ошибку. 20.12.2011
  • говорит ли ваш файл журнала PHP что-нибудь еще о вашем модуле, отсутствующем вспомогательном файле данных, отсутствии чего-либо, синтаксической ошибке? 20.12.2011
  • Вы создали регистрационный файл модуля под app/etc/modules/? 21.12.2011

Ответы:


1

попробуйте изменить номер версии на 0.1.1 и переименуйте файл в `mysql4-upgrade-0.1.0-0.1.1.php.
хотя, поскольку у вас была версия 1.6.1.0, я не уверен, что это сработает: в если нет, попробуйте 1.6.1.0-1.6.1.1

20.12.2011
  • Извините, что прервал разговор на полпути из-за потери подключения к Интернету. Я хотел спросить вас, будет ли папка sql/module_Setup содержать только один файл, т.е. mysql4-upgrade-0.1.0-0.1.1.php или .02.php? 21.12.2011
  • Привет, просто хотел сообщить, что твое решение сработало! :) Я изменил config.xml на 0.0.2 и переименовал файл в mysql4-upgrade-0.0.1-0.02.php. Это сработало. Теперь я вижу свой модуль в таблице core_resource. Значит ли это, что теперь я могу сохранять и извлекать данные в эту таблицу, используя методы Magento. Еще раз спасибо @Dick Laurent. Вы, ребята, очень помогли! Действительно ценю это. 21.12.2011
  • Поскольку я на самом деле не вижу таблицу, а только запись моего модуля в таблице core_resource, могу ли я не использовать методы для установки и получения данных из моей пользовательской таблицы? 21.12.2011
  • @ivn нет, для сохранения/извлечения данных в/из этой таблицы вам необходимо создать соответствующие классы. Я рекомендую вам немного изучить, там много информации. Вы даже можете начать с создателя модуля. Пожалуйста, рассмотрите возможность принятия ответа. 21.12.2011
  • Я принял ваш ответ. Не могли бы вы дать мне какие-либо ссылки, чтобы прочитать больше. Я уже выполнил шаги, описанные в этой ссылке magentocommerce.com/wiki/5_-< i>modules_and_development/0-_module_development_in_magento/custom_module_with_custom_database_table, но безуспешно. Поэтому, если у вас есть какие-либо другие ссылки или сообщения в блогах/учебники, пожалуйста, пришлите мне ссылку. А пока еще раз большое спасибо за вашу помощь! 21.12.2011
  • @ivn Прошло много времени с тех пор, как я начал изучать Magento, поэтому у меня больше нет ссылок. Но вики magentocommerce, безусловно, хорошее место для начала. Оформить заказ также все, что вы можете от Алана Шторма. Здесь также есть несколько сообщений о SO. Поначалу это нелегко, но я могу сказать вам, что это не невозможно. Будьте терпеливы и настойчивы. удачи. 21.12.2011

  • 2
    1. Проверьте, есть ли ваш модуль в таблице core_resource. Если да, то удалите его оттуда и повторите попытку.

    2. Убедитесь, что версия вашего модуля в config.xml больше или равна 0.1.0.

    20.12.2011
  • Его нет в моей таблице core_resource. И я изменил версию своего модуля с 0.1.0 на 1.6.1.0.. Тем не менее он не отображается 20.12.2011
  • какая у вас сейчас версия модуля и какая версия находится в mysql4-install-X.X.X.php? 20.12.2011
  • Версия моего модуля 1.6.1.0 n mysql4-install-0.1.0.php. Должен ли я изменить его на mysql4-install-1.6.1.php? 20.12.2011
  • я бы предпочел изменить оба на 0.1.0 20.12.2011
  • хорошо, тогда это было bfre... config.xml было 0.1.0 n, так же как и файл mysql4... все еще не отображалась таблица d 20.12.2011
  • В этом случае, пожалуйста, взгляните на великолепное руководство по отладке сценария установки модуля, написанное Аланом Стормом stackoverflow.com/questions/4717535/ 20.12.2011
  • если это было так раньше, то это определенно должно быть в таблице core_resource, ищите запись youModuleName_setup. 20.12.2011
  • Я дважды обновлял, очищал кеш и проверял его несколько раз. Но не могу найти запись mymodule_setup в таблице core_resource. 20.12.2011
  • Попробовал ваш код отладки в app/code/core/Mage/Core/Model/Resource/Setup.php в защищенной функции _modifyResourceDb($actionType, $fromVersion, $toVersion) . Все равно ничего не найти. Можете ли вы еще раз указать, какую страницу нужно загрузить, чтобы найти информацию об отладке. На всякий случай Если я ищу не в том месте. 20.12.2011
  • любая страница. сценарий установки работает следующим образом. он получает список всех модулей magento. проверяет с помощью таблицы core_resourse, в каких модулях не установлены обновления, и запускает эти файлы. это происходит при любой загрузке страницы. Вы добавили отладочный код Алана в свой app/code/core/Mage/Core/Model/Resource/Setup.php? У вас есть исключение? 20.12.2011
  • Вот в чем дело. Я не получаю никаких исключений. Я написал код точно так, как указано в этом сообщении, но все равно не получил никаких исключений :( 20.12.2011
  • вы уверены, что ваши файлы сохранены на сервере? может быть, вы ограничены правами доступа к файлам, но все еще видите файл из кеша вашего FTP-клиента? 20.12.2011
  • давайте продолжим это обсуждение в чате 20.12.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..