Domanda

Sto cercando di aggiungere un paio di campi varchar alla vendita / order_address tavolo, ma vengo contro un errore di definizione di colonna.

Ho il seguente codice:

$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'
        )
    );

Questo restituisce l'errore: [message:protected] => Invalid column definition data

Se cambio il codice per utilizzare Varien_Db_Ddl_Table::TYPE_INTEGER poi le piste di codice e si aggiunge la colonna. Ho provato a rimuovere la lunghezza e gli attributi nullable, ma senza alcun risultato.

Modifica

Quando si aggiorna lo script viene aggiornato come segue allora funziona. Qualcuno sa che cosa provoca questo errore?

$oInstaller->getConnection()
    ->addColumn(
        $oInstaller->getTable('sales/order_address'),
        'address_email',
        Varien_Db_Ddl_Table::TYPE_VARCHAR . '(255)'
    );
È stato utile?

Soluzione

Usa TYPE_TEXT. TYPE_VARCHAR è disapprovato (@see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes)

E non preoccuparti per lo spazio di archiviazione. Se si specifica il tipo TYPE_TEXT ma insieme length a consente di dire 255 Magento creerà una colonna di tipo MySQL VARCHAR.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top