Добавить столбец Varchar к адресу заказа
-
16-10-2019 - |
Вопрос
Я пытаюсь добавить несколько полей 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
тип.