Sipariş adresine varchar sütunu ekle


13

Satış / order_address tabloya birkaç varchar alanları eklemek çalışıyorum ama bir sütun tanımı hatası karşı geliyor.

Takip koduna sahibim:

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

Bu hatayı döndürür: [message:protected] => Invalid column definition data

Kullanılacak kodu değiştirirsem Varien_Db_Ddl_Table::TYPE_INTEGERkod çalışır ve sütun eklenir. Uzunluk ve boş özellikleri kaldırmayı denedim ama boşuna.

DÜZENLE

Betiği güncellerken aşağıdaki gibi güncellenir, sonra çalışır. Bu hataya neyin sebep olduğunu bilen var mı?

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

Yanıtlar:


52

Kullanın TYPE_TEXT. TYPE_VARCHARkullanımdan kaldırıldı ( @see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes)

Ve depolama alanı için endişelenmeyin. Tür belirtirseniz, TYPE_TEXTancak lengthizin 255verilecek şekilde ayarlanırsa , Magento'nun MySQL VARCHARtüründe bir sütun oluşturacağını varsayalım .


2
İşler ! ->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array( 'nullable' => true, 'length' => 255, ), null)
Martijn van Hoof

Bu kadar basit olduğuna şaşırdım ... Sınıf, dahili olarak kullanımdan kaldırılan türleri kullanımdan kaldırılacak duruma dönüştüreceğini söylüyor, ancak bunun önceden var olan değerler için olduğunu düşünüyor musunuz? Her iki durumda da bir artı
Robbie Averill
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.