पता आदेश के लिए varchar कॉलम जोड़ें


13

मैं कुछ varchar फ़ील्ड्स को बिक्री / order_address तालिका में जोड़ने का प्रयास कर रहा हूं, लेकिन स्तंभ परिभाषा त्रुटि के खिलाफ आ रहा हूं।

मेरे पास निम्नलिखित कोड हैं:

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

यह त्रुटि लौटाता है: [message:protected] => Invalid column definition data

यदि मैं उपयोग करने के लिए कोड बदलता हूं Varien_Db_Ddl_Table::TYPE_INTEGERतो कोड चलता है और कॉलम जोड़ा जाता है। मैंने लंबाई और अशक्त विशेषताओं को हटाने की कोशिश की है, लेकिन कोई फायदा नहीं हुआ।

संपादित करें

जब स्क्रिप्ट को अपडेट करना अपडेट किया जाता है तो यह काम करता है। क्या किसी को पता है कि इस त्रुटि का कारण क्या है?

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

जवाबों:


52

का उपयोग करें TYPE_TEXTTYPE_VARCHARवंचित है ( @see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes)

और भंडारण स्थान के बारे में चिंता मत करो। यदि आप प्रकार निर्दिष्ट करते हैं, TYPE_TEXTलेकिन lengthयह कहने के लिए सेट है कि 255Magento VARCHARप्रकार का MySQL कॉलम बनाएगा ।


2
काम करता है! ->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array( 'nullable' => true, 'length' => 255, ), null)
Martijn van Hoof

मुझे आश्चर्य है कि यह यह सरल था ... वर्ग का कहना है कि यह आंतरिक रूप से हटाए गए प्रकारों को गैर-पदावनत में बदल देगा, लेकिन मुझे लगता है कि यह पहले से मौजूद मूल्यों के लिए है? किसी भी तरह से, प्लस एक
रॉबी एवेरिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.