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)'
    );
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top