Скриптовый скрипт Magento, запущенный более одного раза? - PullRequest
0 голосов
/ 19 июня 2011

Я пытаюсь выяснить, почему я получаю эту ошибку, когда мой модуль Magento пытается установить себя:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'export_sent' for key 'PRIMARY'

Я думаю, что модуль пытается установить себя несколько раз по какой-то причине, поскольку каждый раз, когда он запускается, значение добавляется в таблицу sales_order_status. Первая инструкция выполняется, а затем кажется, что код продолжает повторяться. Не уверен что происходит. Любая помощь более чем ценится! Кстати, я удалил значение export_sent из таблицы перед запуском этой установки.

Мой модуль config.xml:

<config>
    <modules>
        <Millena_Export>
            <version>0.1.0</version>
        </Millena_Export>
    </modules>
    <global>
        <models>
            <millena_export>
                <class>Millena_Export_Model</class>
            </millena_export>
        </models>
        <helpers>
            <export>
                <class>Millena_Export_Helper</class>
            </export>
        </helpers>
        <resources>
            <export_setup>
                <setup>
                    <module>Millena_Export</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </export_setup>
            <export_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </export_write>
            <export_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </export_read>
        </resources>
    </global>

    <crontab>
        <jobs>
            <millena_export_send_all>
                <schedule><cron_expr>* * * * *</cron_expr></schedule>
                <run><model>millena_export/observer::exportOrderData</model></run>
            </millena_export_send_all>
        </jobs>
    </crontab>
</config>

и мой sql / export_setup / mysql4-install-0.1.0.php:

$installer = $this;
$installer->startSetup();
$installer->run("
    INSERT INTO  `{$this->getTable('sales/order_status')}` (
        `status` ,
        `label`
    ) VALUES (
        'export_sent',  'Exported to Mainframe'
    );
    INSERT INTO  `{$this->getTable('sales/order_status_state')}' (
        `status` ,
        `state` ,
        `is_default`
    ) VALUES (
        'export_sent',  'processing',  '0'
    );

    INSERT INTO  `{$this->getTable('sales/order_status')}` (
        `status` ,
        `label`
    ) VALUES (
        'export_acknowledged',  'Acknowledged by Mainframe'
    );
    INSERT INTO  `{$this->getTable('sales/order_status_state')}' (
        `status` ,
        `state` ,
        `is_default`
    ) VALUES (
        'export_acknowledged',  'processing',  '0'
    );
");
$installer->endSetup();

Ответы [ 2 ]

0 голосов
/ 19 июня 2011

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

0 голосов
/ 19 июня 2011

Вы говорите, что вы удалили export_sent из таблицы (в единственном числе), но на самом деле в вашем скрипте установки он вставлен дважды, в 2 таблицы: вы удалили его в обеих таблицах?проблема, я рекомендую вам применить эти инструкции , вы увидите всю ошибку.Он включает редактирование app / Mage.php, поэтому изменения будут отменены при следующем обновлении установки.
HTH

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