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)'
    );
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top