ক্রোন সম্পাদন করার সময় পিডিও ব্যতিক্রম: নিউজলেটার সারি ব্যর্থ হয় (অজানা কলাম 'main_table.data' 'ক্ষেত্রের তালিকায়')


15

নিউজলেটার সারি প্রক্রিয়া করার সময় ক্রোন জব ব্যর্থ হয়। আমি পিডিও কলগুলি ডিবাগ করেছি এবং মনে হচ্ছে ম্যাজেন্টো এখানে ক্ষেত্রগুলি মিশ্রিত করছে। মাগেন্তো (বা জেনড পিডিও) ফিল্ডগুলি যেখান থেকে নির্বাচন করতে পারে সে সম্পর্কে আমার কোনও ধারণা নেই তবে এটি সম্পূর্ণরূপে মিশে গেছে বলে মনে হচ্ছে:

দেখে মনে হচ্ছে ম্যাগেন্টো গ্রাহকের প্রথম নাম পেতে ব্যর্থ হয়েছে। সর্বশেষ নির্বাচনগুলি হ'ল:

SELECT eav_entity_type.* FROM eav_entity_type WHERE (eav_entity_type.entity_type_code='customer')

DESCRIBE customer_eav_attribute

DESCRIBE customer_eav_attribute_website

তারপরে একটি ক্ষেত্র তালিকার একটি নির্বাচন আসে যা বিদ্যমান নেই:

SELECT main_table.data, main_table.lifetime, main_table.expire, main_table.priority, additional_table.attribute_id, additional_table.is_visible, additional_table.input_filter, additional_table.multiline_count, additional_table.validate_rules, additional_table.is_system, additional_table.sort_order, additional_table.data_model, scope_table.website_id AS scope_website_id, scope_table.is_visible AS scope_is_visible, scope_table.multiline_count AS scope_multiline_count FROM eav_attribute AS main_table INNER JOIN customer_eav_attribute AS additional_table ON additional_table.attribute_id = main_table.attribute_id LEFT JOIN customer_eav_attribute_website AS scope_table ON scope_table.attribute_id = main_table.attribute_id AND scope_table.website_id = :scope_website_id WHERE (main_table.entity_type_id = :mt_entity_type_id)

এই প্রশ্নের জন্য প্যারামিটার: :mt_entity_type_id' => 1এবং:scope_website_id' => 0

এই উত্থাপন

exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'main_table.data' in 'field list''

কারণ ইভা_ট্রিবিউট টেবিলটিতে ক্ষেত্রের ডেটা, আজীবন, মেয়াদ শেষ হওয়া বা অগ্রাধিকার অন্তর্ভুক্ত নয়।

সম্পূর্ণ স্ট্যাক ট্রেস এখানে:

Stack trace:
0 /usr/www/users/weartb/shop/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
1 /usr/www/users/weartb/shop/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
2 /usr/www/users/weartb/shop/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
3 /usr/www/users/weartb/shop/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
4 /usr/www/users/weartb/shop/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `main_ta...', Array)
5 /usr/www/users/weartb/shop/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `main_ta...', Array)
6 /usr/www/users/weartb/shop/lib/Zend/Db/Adapter/Abstract.php(737): Varien_Db_Adapter_Pdo_Mysql->query('SELECT `main_ta...', Array)
7 /usr/www/users/weartb/shop/lib/Varien/Data/Collection/Db.php(734): Zend_Db_Adapter_Abstract->fetchAll('SELECT `main_ta...', Array)
8 /usr/www/users/weartb/shop/app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php(521): Varien_Data_Collection_Db->_fetchAll('SELECT `main_ta...', Array)
9 /usr/www/users/weartb/shop/app/code/core/Mage/Eav/Model/Config.php(356): Mage_Core_Model_Resource_Db_Collection_Abstract->getData()
10 /usr/www/users/weartb/shop/app/code/core/Mage/Eav/Model/Config.php(478): Mage_Eav_Model_Config->_initAttributes(Object(Mage_Eav_Model_Entity_Type))
11 /usr/www/users/weartb/shop/app/code/core/Mage/Eav/Model/Entity/Abstract.php(512): Mage_Eav_Model_Config->getEntityAttributeCodes(Object(Mage_Eav_Model_Entity_Type), Object(Mage_Customer_Model_Customer))
12 /usr/www/users/weartb/shop/app/code/core/Mage/Customer/Model/Customer.php(340): Mage_Eav_Model_Entity_Abstract->loadAllAttributes(Object(Mage_Customer_Model_Customer))
13 /usr/www/users/weartb/shop/app/code/core/Mage/Customer/Model/Customer.php(354): Mage_Customer_Model_Customer->getAttributes()
14 /usr/www/users/weartb/shop/app/code/core/Mage/Newsletter/Model/Resource/Subscriber/Collection.php(134): Mage_Customer_Model_Customer->getAttribute('firstname')
15 /usr/www/users/weartb/shop/app/code/core/Mage/Newsletter/Model/Queue.php(191): Mage_Newsletter_Model_Resource_Subscriber_Collection->showCustomerInfo()
16 [internal function]: Mage_Newsletter_Model_Queue->sendPerSubscriber(20)
17 /usr/www/users/weartb/shop/lib/Varien/Data/Collection.php(466): call_user_func_array(Array, Array)
18 /usr/www/users/weartb/shop/app/code/core/Mage/Newsletter/Model/Observer.php(70): Varien_Data_Collection->walk('sendPerSubscrib...', Array)
19 [internal function]: Mage_Newsletter_Model_Observer->scheduledSend(Object(Mage_Cron_Model_Schedule))
20 /usr/www/users/weartb/shop/app/code/core/Mage/Cron/Model/Observer.php(325): call_user_func_array(Array, Array)
21 /usr/www/users/weartb/shop/app/code/core/Mage/Cron/Model/Observer.php(72): Mage_Cron_Model_Observer->_processJob(Object(Mage_Cron_Model_Schedule), Object(Mage_Core_Model_Config_Element))
22 /usr/www/users/weartb/shop/app/code/core/Mage/Core/Model/App.php(1338): Mage_Cron_Model_Observer->dispatch(Object(Varien_Event_Observer))
23 /usr/www/users/weartb/shop/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Cron_Model_Observer), 'dispatch', Object(Varien_Event_Observer))
24 /usr/www/users/weartb/shop/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('default', Array)
25 /usr/www/users/weartb/shop/cron.php(84): Mage::dispatchEvent('default')
26 {main}

Mage_Customer_Model_Customer->getAttribute('firstname')কল না হওয়া পর্যন্ত সবকিছু ঠিক আছে বলে মনে হচ্ছে ।

আমরা গ্রাহক মডেলকে প্রসারিত করি নি বা এমন কোনও মডিউল ব্যবহার করি নি যা নিউজলেটারের পূর্বরূপও ভাল কাজ করে এবং ম্যানুয়ালিও প্রেরণ করে, তাই এই ব্যতিক্রম তখনই ঘটে যখন ম্যাজেন্টো ক্রোন কলের মাধ্যমে নিউজলেটারের সারিটি প্রক্রিয়া করার চেষ্টা করে।


ম্যাজেন্টোর কোন সংস্করণ? Magento 1.9.0.1 এ আমি চালাতে Zend_Debug::dump(Mage::getModel('customer/customer')->getAttribute('firstname'));এবং একটি বৈধ Mage_Customer_Model_Attributeফিরে পেতে পারি । আপনি নিজে ডাটাবেসের মধ্যে নিশ্চিত করতে পারেন যে একটি বৈশিষ্ট্য firstnameরয়েছে eav_attributeএবং অধিকার রয়েছে entity_type_idথেকে eav_entity_type?
টাইলার ভি।

উত্তর:


3

আমি মনে করি আপনি মূল ফাইল অ্যাপ / কোড / কোর / ম্যাজ / নিউজলেটার / মডেল / রিসোর্স / গ্রাহক / সংগ্রহ.এফপি সংশোধিত করেছেন

অনুগ্রহ করে 130 লাইনের কাছে শো কাস্টমিরআইএনফো () ফাংশনটি পরীক্ষা করুন It এটি হওয়া উচিত:

public function showCustomerInfo()
{
    $adapter = $this->getConnection();
    $customer = Mage::getModel('customer/customer');
    $firstname  = $customer->getAttribute('firstname');
    $lastname   = $customer->getAttribute('lastname');

    $this->getSelect()
        ->joinLeft(
            array('customer_lastname_table'=>$lastname->getBackend()->getTable()),
            $adapter->quoteInto('customer_lastname_table.entity_id=main_table.customer_id
             AND customer_lastname_table.attribute_id = ?', (int)$lastname->getAttributeId()),
            array('customer_lastname'=>'value')
        )
        ->joinLeft(
            array('customer_firstname_table'=>$firstname->getBackend()->getTable()),
            $adapter->quoteInto('customer_firstname_table.entity_id=main_table.customer_id
             AND customer_firstname_table.attribute_id = ?', (int)$firstname->getAttributeId()),
            array('customer_firstname'=>'value')
        );

    return $this;
}

আমি কেন এমন মনে করি?

  1. আপনার ত্রুটি লগটি কোনও তৃতীয় পক্ষের এক্সটেনশন বা ম্যাজ / স্থানীয় ফাইলের সাথে জড়িত তা কী তা দেখায়।

  2. এই ম্যাজেন্টো ক্রিয়াকলাপের জন্য স্ট্যান্ডার্ড এসকিউএল কোয়েরিতে 'মেইন_ট্যাবল.ডেটা, মেইন_ টেবিল.লাইফটাইম, মেইন_ টেবিল.একপায়ার, মেইন_ টেবিল.প্রাইরিটি,' পার্ট নেই।


1

আপনার স্ট্যাক ট্রেস দিয়ে চলমান, আপনার এসকিউএল এর কিছু দেখতে পাওয়া উচিত:

SELECT `main_table`.`attribute_id`, `main_table`.`entity_type_id`, `main_table`.`attribute_code`, `main_table`.`attribute_model`, `main_table`.`backend_model`, `main_table`.`backend_type`, `main_table`.`backend_table`, `main_table`.`frontend_model`, `main_table`.`frontend_input`, `main_table`.`frontend_label`, `main_table`.`frontend_class`, `main_table`.`source_model`, `main_table`.`is_required`, `main_table`.`is_user_defined`, `main_table`.`default_value`, `main_table`.`is_unique`, `main_table`.`note`, `additional_table`.`is_visible`, `additional_table`.`input_filter`, `additional_table`.`multiline_count`, `additional_table`.`validate_rules`, `additional_table`.`is_system`, `additional_table`.`sort_order`, `additional_table`.`data_model`, `scope_table`.`website_id` AS `scope_website_id`, `scope_table`.`is_visible` AS `scope_is_visible`, `scope_table`.`is_required` AS `scope_is_required`, `scope_table`.`default_value` AS `scope_default_value`, `scope_table`.`multiline_count` AS `scope_multiline_count` FROM `eav_attribute` AS `main_table`
 INNER JOIN `customer_eav_attribute` AS `additional_table` ON additional_table.attribute_id = main_table.attribute_id
 LEFT JOIN `customer_eav_attribute_website` AS `scope_table` ON scope_table.attribute_id = main_table.attribute_id AND scope_table.website_id = :scope_website_id WHERE (main_table.entity_type_id = :mt_entity_type_id)

আমি ম্যাজেন্টোতে কোথাও অজানা কলামগুলি খুঁজে পেতে পারি না বলে মনে হয়, তবে আমার কাছে একটি লুক্কায়িত অনুভূতি রয়েছে যা এর সেশন / ক্যাশে কিছু করার আছে তবে 100% নিশ্চিত নয়। আপনি কি রেডিস সম্ভবত সক্ষম করেছেন? যদি তা হয় তবে ক্যাশে অক্ষম করুন এবং সাফ করুন এবং দেখুন ফলাফল কী।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.