Frage

Ich versuche, der Tabelle Sales/Order_address ein paar VARCHAR -Felder hinzuzufügen, stehe aber gegen einen Spaltendefinitionsfehler.

Ich habe den folgenden Code:

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

Dies gibt den Fehler zurück: [message:protected] => Invalid column definition data

Wenn ich den zu verwendenden Code ändere Varien_Db_Ddl_Table::TYPE_INTEGER Dann wird der Code ausgeführt und die Spalte wird hinzugefügt. Ich habe versucht, die Länge und die näherbaren Attribute zu entfernen, aber ohne Erfolg.

BEARBEITEN

Beim Aktualisieren des Skripts wird wie folgt aktualisiert, dann funktioniert es. Weiß jemand, was diesen Fehler verursacht?

$oInstaller->getConnection()
    ->addColumn(
        $oInstaller->getTable('sales/order_address'),
        'address_email',
        Varien_Db_Ddl_Table::TYPE_VARCHAR . '(255)'
    );
War es hilfreich?

Lösung

Verwenden TYPE_TEXT. TYPE_VARCHAR ist veraltet (@see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes)

Und mach dir keine Sorgen um den Stauraum. Wenn Sie den Typ angeben TYPE_TEXT aber set length sagen wir sagen 255 Magento erstellt eine MySQL -Spalte von VARCHAR Typ.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top