Aggiungi colonna varchar all'indirizzo ordine
-
16-10-2019 - |
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)'
);
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
.