Проблема с настройкой ресурса в magento - PullRequest
0 голосов
/ 21 июня 2011

Прошу прощения за длинный пост заранее.

Я следил за статьями Алана Сторма о разработке magento.Я следил за 6 частью этой серии о настройке ресурсов.Я создал настройку ресурса в файле конфигурации и поместил файл Setup.php соответствующим образом.Но если я пытаюсь очистить кеш или получить доступ к любой странице magento, я получаю сообщение об ошибке: При обработке вашего запроса произошла ошибка.Если я удаляю часть установки из файла конфигурации, все снова работает идеально.Вот мои файлы: файл Config.xml

<config>    
    <modules>
        <Foostor_Weblog>
            <version>0.1.0</version>
        </Foostor_Weblog>
    </modules>
    <frontend>
        <routers>
            <weblog>
                <use>standard</use>
                <args>
                    <module>Foostor_Weblog</module>
                    <frontName>weblog</frontName>
                </args>
            </weblog>
        </routers>
    </frontend> 
    <global>
        <models>
        <weblog>
            <class>Foostor_Weblog_Model</class>
            <!-- 
            need to create our own resource, cant just
            use core_mysql4
            -->
            <resourceModel>weblog_mysql4</resourceModel>
        </weblog> 
        <weblog_mysql4>
            <class>Foostor_Weblog_Model_Mysql4</class>
            <entities>
                <blogpost>
                    <table>blog_posts</table>
                </blogpost>
            </entities>
        </weblog_mysql4>
    </models>
    <resources>
        <weblog_setup>
            <setup>
                <module>Foostor_Weblog</module>
                <class>Foostor_Weblog_Model_Resource_Setup</class>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </weblog_setup>
        <weblog_write>
            <connection>
                <use>core_write</use>
            </connection>
        </weblog_write>
        <weblog_read>
            <connection>
                <use>core_read</use>
            </connection>
        </weblog_read>      
    </resources>
    </global>
</config>

Это файл Setup.php:

Также в отчетах в папке var / reports я нашел это сообщение об ошибке:

a:5:{i:0;s:102:"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'weblog_setup' for key 'PRIMARY'";i:1;s:1493:"#0 C:\wamp\www\magento\lib\Zend\Db\Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#1 C:\wamp\www\magento\lib\Zend\Db\Adapter\Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 C:\wamp\www\magento\lib\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `co...', Array)
#3 C:\wamp\www\magento\lib\Varien\Db\Adapter\Pdo\Mysql.php(337): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `co...', Array)
#4 C:\wamp\www\magento\lib\Zend\Db\Adapter\Abstract.php(574): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `co...', Array)
#5 C:\wamp\www\magento\app\code\core\Mage\Core\Model\Mysql4\Resource.php(96): Zend_Db_Adapter_Abstract->insert('core_resource', Array)
#6 C:\wamp\www\magento\app\code\core\Mage\Core\Model\Resource\Setup.php(290): Mage_Core_Model_Mysql4_Resource->setDbVersion('weblog_setup', '0.1.0')
#7 C:\wamp\www\magento\app\code\core\Mage\Core\Model\Resource\Setup.php(233): Mage_Core_Model_Resource_Setup->_upgradeResourceDb('0', '0.1.0')
#8 C:\wamp\www\magento\app\code\core\Mage\Core\Model\Resource\Setup.php(161): Mage_Core_Model_Resource_Setup->applyUpdates()
#9 C:\wamp\www\magento\app\code\core\Mage\Core\Model\App.php(399): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#10 C:\wamp\www\magento\app\code\core\Mage\Core\Model\App.php(329): Mage_Core_Model_App->_initModules()
#11 C:\wamp\www\magento\app\Mage.php(627): Mage_Core_Model_App->run(Array)
#12 C:\wamp\www\magento\index.php(80): Mage::run('', 'store')
#13 {main}";s:3:"url";s:48:"/magento/index.php/weblog/index/showAllBlogPosts";s:11:"script_name";s:18:"/magento/index.php";s:4:"skin";s:7:"default";}

В нескольких сообщениях я обнаружил, что нарушения ограничения целостности можно избежать, очистив содержимое таблиц Log_ * в базе данных magento.Но я не уверен, что это то, что мне нужно сделать.Добрый совет.Спасибо.

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

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

0 голосов
/ 26 апреля 2017

У меня была похожая проблема. Причина была в том, что в моем установочном скрипте использовалась переменная $file. Так что произошло столкновение с переменной $file в Mage_Core_Model_Resource_Setup::_modifyResourceDb.

Я не знаю, является ли это тем же случаем, однако никогда не называет переменную в сценарии установки как $file, $fileName или $version.

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