Agregar la columna Varchar a la dirección de pedido
-
16-10-2019 - |
Pregunta
Estoy tratando de agregar algunos campos de Varchar a la tabla Sales/Order_Address, pero estoy con un error de definición de columna.
Tengo el siguiente código:
$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'
)
);
Esto devuelve el error: [message:protected] => Invalid column definition data
Si cambio el código para usar Varien_Db_Ddl_Table::TYPE_INTEGER
Luego se ejecuta el código y se agrega la columna. He intentado eliminar la longitud y los atributos anulables, pero fue en vano.
EDITAR
Al actualizar el script se actualiza de la siguiente manera, funciona. ¿Alguien sabe qué causa este error?
$oInstaller->getConnection()
->addColumn(
$oInstaller->getTable('sales/order_address'),
'address_email',
Varien_Db_Ddl_Table::TYPE_VARCHAR . '(255)'
);
Solución
Usar TYPE_TEXT
. TYPE_VARCHAR
es obsoleto (@see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes
)
Y no se preocupe por el espacio de almacenamiento. Si especifica el tipo TYPE_TEXT
Pero establecer length
Digamos 255
Magento creará una columna MySQL de VARCHAR
escribe.