Ajouter une colonne varchar à l'adresse de commande
-
16-10-2019 - |
Question
Je suis en train d'ajouter quelques champs varchar à la vente / order_address la table, mais je suis contre une venue erreur de définition de la colonne.
Je le code suivant:
$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'
)
);
renvoie l'erreur: [message:protected] => Invalid column definition data
Si je change le code à utiliser Varien_Db_Ddl_Table::TYPE_INTEGER
alors les pistes de code et la colonne est ajoutée. Je l'ai essayé d'enlever la longueur et les attributs nullables mais en vain.
EDIT
Lors de la mise à jour du script est mis à jour comme suit alors cela fonctionne. Est-ce que quelqu'un sait ce qui cause cette erreur?
$oInstaller->getConnection()
->addColumn(
$oInstaller->getTable('sales/order_address'),
'address_email',
Varien_Db_Ddl_Table::TYPE_VARCHAR . '(255)'
);
La solution
Utilisez TYPE_TEXT
. TYPE_VARCHAR
est obsolète (@see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes
)
Et ne vous inquiétez pas de l'espace de stockage. Si vous spécifiez le type TYPE_TEXT
mais ensemble length
à dire 255
permet Magento créer une colonne de MySQL de type VARCHAR
.