Вопрос

Я пытаюсь добавить несколько полей Varchar в таблицу Sales/Order_Address, но я приступаю к ошибке определения столбца.

У меня есть следующий код:

$oInstaller->getConnection()
    ->addColumn(
        $oInstaller->getTable('sales/order_address'),
        'address_email',
        array(
            'nullable' => false,
            'length' => 255,
            'type' => Varien_Db_Ddl_Table::TYPE_VARCHAR,
            'comment' => 'Company Email Address'
        )
    );

Это возвращает ошибку: [message:protected] => Invalid column definition data

Если я изменю код на использование Varien_Db_Ddl_Table::TYPE_INTEGER Затем запускается код, и столбец добавлен. Я попытался удалить длину и нулевые атрибуты, но безрезультатно.

РЕДАКТИРОВАТЬ

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

$oInstaller->getConnection()
    ->addColumn(
        $oInstaller->getTable('sales/order_address'),
        'address_email',
        Varien_Db_Ddl_Table::TYPE_VARCHAR . '(255)'
    );
Это было полезно?

Решение

Использовать TYPE_TEXT. TYPE_VARCHAR устарела (@see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes)

И не беспокойтесь о пространстве для хранения. Если вы указали тип TYPE_TEXT но набор length Скажем 255 Magento создаст колонку MySQL VARCHAR тип.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top