2015-06-07 2 views
0

Мой вопрос относится к пурпуре CMS. Я создал скрипт sql installer и на моем сервере, когда я обращаюсь к mysql, и поиск не могу найти мой новый столбец, созданный с помощью скрипта. Мой код:Установщик sql не запускается, когда компилятор отключен?

<?php 

$installer = new Mage_Sales_Model_Resource_Setup('core_setup'); 

//entities for options in table Sales Flat Order Item 
$entities = array(
    'order_item' 
); 

//entity for desactivate_count in table Sales Flat Order 
$entitydes = array(
    'order' 
); 

//for type text 
$optionstxt = array(
    'type'  => 'text', 
    'grid' => false 
); 

//for type int 
$optionsint = array(
    'type' => 'int', 
    'grid' => false, 
    'default' => '0' 
    ); 

//just for column incomm_desactivate_count 
$optionsdesc = array(
    'type' => 'int', 
    'grid' => true, 
    'default' => '0' 
    ); 

foreach ($entities as $entity) { 
    $installer->addAttribute($entity, 'incomm_request_active_code', $options); 
    $installer->addAttribute($entity, 'incomm_cancel', $options); 
    $installer->addAttribute($entity, 'incomm_exception_count', $optionsint); //value int(2) 
    $installer->addAttribute($entity, 'incomm_return_active_code', $options); 
    $installer->addAttribute($entity, 'incomm_activated', $optionsint); //value int(1) 
} 

foreach ($entitydes as $entity) { 
    $installer->addAttribute($entity, 'incomm_desactivate_count', $optionsdesc); //value int(2) 
} 

$installer->endSetup(); 

Я нахожу Magento Module SQL does not run и один комментарий говорит скомпилировать для выполнения установки SQL в моем пользовательский модуль Magento. Мне нужно знать, зачем это нужно ... в этой ссылке я не могу найти больше информации.

ответ

0

Вам не нужно компилироваться для запуска сценариев обновления. На самом деле, я думаю, вам может понадобиться временно отключить компиляцию для запуска сценариев обновления (хотя я не слишком уверен в этом).

Это зависит от значения версии вашего модуля, который хранится в таблице core_resource вашей базы данных Magento.

[ВАШ МОДУЛЬ]

config.xml [configuraton-file] - The version number resides in this. 

sql (folder) > *.php [upgrade php scripts] 

Теперь Magento запускает сценарии обновления в вашем модуле, если (оба TRUE):

  1. номер версии модуля в config.xml IS БОЛЬШЕ, чем номер версии вашего модуля в модуле «core_resource».

  2. сценарии с новой версией, указанной в файле config.xml, находятся в папке sql модуля. Magento очень свойственна соглашениям об именах файлов.

Я думаю, что номер версии вашего модуля в таблице core_resource уже до последней версии, поэтому он не ищет сценарий обновления. Итак, я предлагаю вам удалить запись модуля или уменьшить номер версии в таблице core_resource Magento db. Затем поддерживайте файлы в соответствии со стандартом Mageto, и ваш сценарий обновления будет запущен.

Смежные вопросы