परीक्षण के बाद मैजेंटो को साफ़ करना


75

मैं वर्तमान में Magento में बहुत सारे परीक्षण कर रहा हूं ताकि मैं इससे परिचित हो सकूं। दुर्भाग्य से डेटाबेस मेरे परीक्षणों के साथ बेहद अव्यवस्थित है। मैं डेटाबेस को साफ करना चाहता हूं ताकि मैं फिर से शुरू कर सकूं। इसका मतलब निम्न कार्य करना है:

  • सभी उत्पादों को साफ़ करना
  • सभी विशेषताओं को साफ़ करना
  • सभी विशेषता सेट साफ़ करना
  • सभी श्रेणियों को साफ़ करना
  • सभी आदेश, शिपमेंट, लेनदेन आदि को साफ़ करना।

मुझे उत्पादों को साफ़ करने के लिए Magento के मंचों पर एक पोस्ट मिली है, जो निम्न SQL है:

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `catalog_product_bundle_option`;
TRUNCATE TABLE `catalog_product_bundle_option_value`;
TRUNCATE TABLE `catalog_product_bundle_selection`;
TRUNCATE TABLE `catalog_product_entity_datetime`;
TRUNCATE TABLE `catalog_product_entity_decimal`;
TRUNCATE TABLE `catalog_product_entity_gallery`;
TRUNCATE TABLE `catalog_product_entity_int`;
TRUNCATE TABLE `catalog_product_entity_media_gallery`;
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`;
TRUNCATE TABLE `catalog_product_entity_text`;
TRUNCATE TABLE `catalog_product_entity_tier_price`;
TRUNCATE TABLE `catalog_product_entity_varchar`;
TRUNCATE TABLE `catalog_product_flat_1`;
TRUNCATE TABLE `catalog_product_link`;
TRUNCATE TABLE `catalog_product_link_attribute`;
TRUNCATE TABLE `catalog_product_link_attribute_decimal`;
TRUNCATE TABLE `catalog_product_link_attribute_int`;
TRUNCATE TABLE `catalog_product_link_attribute_varchar`;
TRUNCATE TABLE `catalog_product_link_type`;
TRUNCATE TABLE `catalog_product_option`;
TRUNCATE TABLE `catalog_product_option_price`;
TRUNCATE TABLE `catalog_product_option_title`;
TRUNCATE TABLE `catalog_product_option_type_price`;
TRUNCATE TABLE `catalog_product_option_type_title`;
TRUNCATE TABLE `catalog_product_option_type_value`;
TRUNCATE TABLE `catalog_product_super_attribute_label`;
TRUNCATE TABLE `catalog_product_super_attribute_pricing`;
TRUNCATE TABLE `catalog_product_super_attribute`;
TRUNCATE TABLE `catalog_product_super_link`;
TRUNCATE TABLE `catalog_product_enabled_index`;
TRUNCATE TABLE `catalog_product_website`;
TRUNCATE TABLE `catalog_product_relation`;
TRUNCATE TABLE `catalog_category_product_index`;
TRUNCATE TABLE `catalog_category_product`;
TRUNCATE TABLE `cataloginventory_stock_item`;
TRUNCATE TABLE `cataloginventory_stock_status`;
TRUNCATE TABLE `cataloginventory_stock_status_idx`;
TRUNCATE TABLE `cataloginventory_stock`;
TRUNCATE TABLE `core_url_rewrite`;
INSERT  INTO `catalog_product_link_type`(`link_type_id`,`code`) VALUES (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell');
INSERT  INTO `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) VALUES (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal');
INSERT  INTO `cataloginventory_stock`(`stock_id`,`stock_name`) VALUES (1,'Default');
TRUNCATE TABLE `catalog_product_entity`;
SET FOREIGN_KEY_CHECKS = 1;

मुझे दूसरों के उल्लेख के लिए समान की आवश्यकता होगी। दुर्भाग्य से मुझे नहीं पता कि कौन-सी तालिकाएँ सभी अलग-अलग डेटाों को पकड़ रही हैं, अन्यथा मैंने इसे स्वयं किया होता। मैं दुर्घटना से गलत तालिकाओं को भी साफ़ नहीं करना चाहता। मुझे आशा है आप मेरी मदद कर सकते हैं!


आपके परीक्षण डेटाबेस से आपको कौन से डेटा की आवश्यकता है? क्या आपने उस डेटा को निर्यात करने पर विचार किया था (उदाहरण के लिए आपके कॉन्फ़िगरेशन core_config_data) और बस फिर से शुरू करें?
एलेक्स

1
इसके अलावा github.com/netz98/n98-magerun#stripped-database-dump पर एक नज़र डालें - यह आपको आदेशों के बिना डेटाबेस निर्यात करने की अनुमति देता है आदि और फिर आप फिर से आयात कर सकते हैं।
एलेक्स

@ एलेक्स मुझे यकीन नहीं है कि मुझे क्या रखना है क्योंकि मुझे यह एक तीसरे पक्ष से मिला है जिसने दुकान का आधार बनाया है। मुझे खुद पर इसे विकसित करने की आवश्यकता है, लेकिन मुझे पूरी तरह से यकीन नहीं है कि मैं क्या फेंक सकता हूं और क्या नहीं। इसके अलावा, मैं आपके द्वारा दिए गए लिंक को देखूंगा।
दीप फ्रोजेन

मैंने अकस्मात ही सभी विशेषताओं को साफ़ कर दिया। मैजेंटो सिस्टम विशेषताओं सहित। मैं अब उत्पाद नहीं बना सकता। क्या केवल डिफ़ॉल्ट Magento कोर सिस्टम विशेषताओं को पुनर्स्थापित करने का एक तरीका है?
जेली_फुट नट

@ जेली_डोटनट मैं एक अलग सवाल पूछने का सुझाव दूंगा
फोमन

जवाबों:


98
    ***********for categories********************
TRUNCATE TABLE `catalog_category_entity`;
TRUNCATE TABLE `catalog_category_entity_datetime`;
TRUNCATE TABLE `catalog_category_entity_decimal`;
TRUNCATE TABLE `catalog_category_entity_int`;
TRUNCATE TABLE `catalog_category_entity_text`;
TRUNCATE TABLE `catalog_category_entity_varchar`;
TRUNCATE TABLE `catalog_category_product`;
TRUNCATE TABLE `catalog_category_product_index`;

INSERT  INTO `catalog_category_entity`(`entity_id`,`entity_type_id`,`attribute_set_id`,`parent_id`,`created_at`,`updated_at`,`path`,`POSITION`,`level`,`children_count`) VALUES (1,3,0,0,'0000-00-00 00:00:00','2009-02-20 00:25:34','1',1,0,1),(2,3,3,0,'2009-02-20 00:25:34','2009-02-20 00:25:34','1/2',1,1,0);
INSERT  INTO `catalog_category_entity_int`(`value_id`,`entity_type_id`,`attribute_id`,`store_id`,`entity_id`,`value`) VALUES (1,3,32,0,2,1),(2,3,32,1,2,1);
INSERT  INTO `catalog_category_entity_varchar`(`value_id`,`entity_type_id`,`attribute_id`,`store_id`,`entity_id`,`value`) VALUES (1,3,31,0,1,'Root Catalog'),(2,3,33,0,1,'root-catalog'),(3,3,31,0,2,'Default Category'),(4,3,39,0,2,'PRODUCTS'),(5,3,33,0,2,'default-category');

    *****************for customers*****************


    SET FOREIGN_KEY_CHECKS=0;
-- reset customers
TRUNCATE customer_address_entity;
TRUNCATE customer_address_entity_datetime;
TRUNCATE customer_address_entity_decimal;
TRUNCATE customer_address_entity_int;
TRUNCATE customer_address_entity_text;
TRUNCATE customer_address_entity_varchar;
TRUNCATE customer_entity;
TRUNCATE customer_entity_datetime;
TRUNCATE customer_entity_decimal;
TRUNCATE customer_entity_int;
TRUNCATE customer_entity_text;
TRUNCATE customer_entity_varchar;
TRUNCATE log_customer;
TRUNCATE log_visitor;
TRUNCATE log_visitor_info;

ALTER TABLE customer_address_entity AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_datetime AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_decimal AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_int AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_text AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_varchar AUTO_INCREMENT=1;
ALTER TABLE customer_entity AUTO_INCREMENT=1;
ALTER TABLE customer_entity_datetime AUTO_INCREMENT=1;
ALTER TABLE customer_entity_decimal AUTO_INCREMENT=1;
ALTER TABLE customer_entity_int AUTO_INCREMENT=1;
ALTER TABLE customer_entity_text AUTO_INCREMENT=1;
ALTER TABLE customer_entity_varchar AUTO_INCREMENT=1;
ALTER TABLE log_customer AUTO_INCREMENT=1;
ALTER TABLE log_visitor AUTO_INCREMENT=1;
ALTER TABLE log_visitor_info AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;

आदेश के लिए

    SET FOREIGN_KEY_CHECKS=0; 
TRUNCATE `sales_flat_creditmemo`; 
TRUNCATE `sales_flat_creditmemo_comment`; 
TRUNCATE `sales_flat_creditmemo_grid`; 
TRUNCATE `sales_flat_creditmemo_item`; 
TRUNCATE `sales_flat_invoice`; 
TRUNCATE `sales_flat_invoice_comment`; 
TRUNCATE `sales_flat_invoice_grid`; 
TRUNCATE `sales_flat_invoice_item`; 
TRUNCATE `sales_flat_order`; 
TRUNCATE `sales_flat_order_address`; 
TRUNCATE `sales_flat_order_grid`; 
TRUNCATE `sales_flat_order_item`; 
TRUNCATE `sales_flat_order_payment`; 
TRUNCATE `sales_flat_order_status_history`; 
TRUNCATE `sales_flat_quote`; 
TRUNCATE `sales_flat_quote_address`; 
TRUNCATE `sales_flat_quote_address_item`; 
TRUNCATE `sales_flat_quote_item`; 
TRUNCATE `sales_flat_quote_item_option`; 
TRUNCATE `sales_flat_quote_payment`; 
TRUNCATE `sales_flat_quote_shipping_rate`; 
TRUNCATE `sales_flat_shipment`; 
TRUNCATE `sales_flat_shipment_comment`; 
TRUNCATE `sales_flat_shipment_grid`; 
TRUNCATE `sales_flat_shipment_item`; 
TRUNCATE `sales_flat_shipment_track`; 
TRUNCATE `sales_invoiced_aggregated`; 
TRUNCATE `sales_invoiced_aggregated_order`; 
TRUNCATE `sales_payment_transaction`;
TRUNCATE `sales_order_aggregated_created`; 
TRUNCATE `sales_order_tax`;
TRUNCATE `sales_order_tax_item`;
TRUNCATE `sendfriend_log`; 
TRUNCATE `tag`; 
TRUNCATE `tag_relation`; 
TRUNCATE `tag_summary`; 
TRUNCATE `wishlist`; 
TRUNCATE `log_quote`; 
TRUNCATE `report_event`; 
ALTER TABLE `sales_flat_creditmemo` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_creditmemo_comment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_creditmemo_grid` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_creditmemo_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_invoice_comment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_quote_payment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_quote_shipping_rate` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_shipment_comment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_flat_shipment_track` AUTO_INCREMENT=1; 
ALTER TABLE `sales_invoiced_aggregated` AUTO_INCREMENT=1; 
ALTER TABLE `sales_invoiced_aggregated_order` AUTO_INCREMENT=1; 
ALTER TABLE `sales_payment_transaction` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_aggregated_created` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_tax` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_tax_item` AUTO_INCREMENT=1; 
ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1; 
ALTER TABLE `tag` AUTO_INCREMENT=1; 
ALTER TABLE `tag_relation` AUTO_INCREMENT=1; 
ALTER TABLE `tag_summary` AUTO_INCREMENT=1; 
ALTER TABLE `wishlist` AUTO_INCREMENT=1; 
ALTER TABLE `log_quote` AUTO_INCREMENT=1; 
ALTER TABLE `report_event` AUTO_INCREMENT=1; 
SET FOREIGN_KEY_CHECKS=1;

आप इस फ़ंक्शन का उपयोग विशेषता सेट को हटाने के लिए कर सकते हैं।

 $resource = Mage::getSingleton('core/resource');
$db_read = $resource->getConnection('core_read');

$attribute_sets = $db_read->fetchCol("SELECT attribute_set_id FROM " . $resource->getTableName("eav_attribute_set") . " WHERE attribute_set_id<> 4 AND entity_type_id=4");
foreach ($attribute_sets as $attribute_set_id) {
    try {
        Mage::getModel("eav/entity_attribute_set")->load($attribute_set_id)->delete();
    } catch (Exception $e) {
        echo $e->getMessage() . "\n";
    }
}

और विशेषता को हटाने के लिए इस तालिका को देखें

catalog_eav_attribute
eav_attribute
eav_attribute_set

eav_attributeकॉलम की जाँच करें is_user_definedताकि आप कुछ विचार प्राप्त कर सकें।


यह वही है जिसकी मुझे तलाश है! क्या आपके पास भी यह गुण और विशेषता सेट के लिए है?
दीप फ्रोजेन

नहीं, मेरे पास विशेषता और विशेषता सेटों के लिए कोई sql नहीं है, यदि आप बहुत अधिक प्रविष्टि नहीं हैं, तो आप मैन्युअल रूप से अपनी विशेषता और विशेषता सेट हटा सकते हैं
Mufaddal

दुर्भाग्य से उनमें से बहुत सारे हैं। वैसे भी, इन के लिए धन्यवाद, यह निश्चित रूप से मदद करेगा! मैं सिर्फ उन्हें खुद के द्वारा विशेषताओं के लिए मुझे पता लगाना होगा।
दीप फ्रोजेन

@Rune ठीक है मेरी अद्यतन जवाब की जांच
Mufaddal

2
एंटरप्राइज़ पर ध्यान दें आपको ट्रंकटेट करने की भी आवश्यकता है: एंटरप्राइज़_कस्टमर_सलेस_फ्लैट_ऑर्डर एंटरप्राइज़_कस्टमर_साल_फ्लैट_ऑर्डर_ड्रेस एंटरप्राइज_सलेस_ऑर्डर_ग्रिड_आर्काइव
टीयर स्नाइडर

19

आप बस पूरे डेटाबेस को खाली कर सकते हैं और मैगेंटो अपने सभी इंस्टॉल / अपग्रेड / डेटा स्क्रिप्ट को फिर से अगले पेजेलोएड पर चलाएगा। यह Magento के "फ़ैक्टरी रीसेट" को करेगा और आपके सभी परिवर्तनों को नष्ट कर देगा।

एक अच्छी आदत एक मॉड्यूल बनाने की है जिसमें इंस्टॉल / अपग्रेड / डेटा स्क्रिप्ट के अंदर आपकी सभी बुनियादी स्टोर सेटिंग्स शामिल हैं। इसका यह लाभ है कि इन सेटिंग्स को संस्करण नियंत्रण में संग्रहीत किया जाता है और स्टोर के लिए आपके पास मौजूद सभी विभिन्न वेबसाइट (उत्पादन, मंचन, उपयोगकर्ता स्वीकृति परीक्षण आदि) को अद्यतित रखा जाएगा।

यदि किसी साइट पर कई व्यक्ति काम कर रहे हैं, तो हम हर सेटिंग समूह के लिए एक नया मॉड्यूल भी बनाते हैं ताकि जब हम कोड मर्ज करें तो संस्करण संघर्ष न करें।

आपके मामले में, मैं एक मॉड्यूल बनाऊंगा जो उन सभी सेटिंग्स को सेटअप करता है जिन्हें आप रखना चाहते हैं। यदि आप डेटाबेस को मिटा देते हैं, तो Magento पूरी तरह से साफ हो जाएगा और इसमें वह सेटिंग्स भी शामिल होगी जो आप चाहते हैं!

आप Mag Magento की स्थापित / अपग्रेड स्क्रिप्ट पर एक नज़र डाल सकते हैं कि कैसे Magento यह प्रारंभिक डेटा / सेटिंग्स स्थापित करता है।


3
यह एक अच्छा विचार है, केवल एक समस्या है: यदि आपने एक्सटेंशन स्थापित किए हैं तो आप समस्या में भाग सकते हैं, कि उनका इस तरह परीक्षण नहीं किया जाता है, इसलिए वे त्रुटियां फेंक देते हैं, क्योंकि मॉड्यूल की इंस्टॉल स्क्रिप्ट कुछ अन्य मॉड्यूल से पहले चलती है निर्भरता पूरी नहीं होती है। लेकिन मुझे यह तरीका भी पसंद है।
फैबियन ब्लेसस्मिड

क्या आप उसे समझा सकते हैं? यदि आप अपने स्वयं के मॉड्यूल में किसी तृतीय-पक्ष मॉड्यूल के आधार पर सेटिंग सम्मिलित कर रहे हैं, तो केवल तृतीय-पक्ष मॉड्यूल को एक निर्भरता के रूप में घोषित करें (आपके एप्लिकेशन / etc / मॉड्यूल.xml में) और आपके मॉड्यूल स्थापित / अपग्रेड करने के बाद तीसरे स्थान पर चलेंगे -पार्टी मॉड्यूल ’।
इरफान

1
हाँ, लेकिन यदि तृतीय पक्ष मॉड्यूल ऐसा नहीं करता है या डेटा स्क्रिप्ट के बजाय इंस्टॉल में डेटा सम्मिलित करता है, तो आपको आदेश के कारण समस्याएँ हो सकती हैं। ज्यादातर मामलों में, डेवलपर्स मान लेते हैं, कि Magento पहले से ही स्थापित है ;-)
Fabian Blechschmidt

1
एक अन्य संभावित समस्या यह है कि आप कॉन्फ़िगरेशन सेटिंग्स और / या सीएमएस सामग्री को बनाए रखना चाह सकते हैं। ताकि डेटाबेस को पूरी तरह से साफ़ करने के बाद बैकअप लेना और फिर से आयात करना पड़े।
डेविएल्गर

1
इन सेटअप मॉड्यूल का बिंदु @davidalger कॉन्फ़िगरेशन सेटिंग्स और / या सीएमएस सामग्री को रखने के लिए है ताकि आपको उन्हें फिर से आयात न करना पड़े। यानी आप अपनी डेटा-स्क्रिप्ट में CMS पेज जोड़ सकते हैं ताकि db क्लियर होने के बाद वे अपने आप फिर से सम्मिलित हो जाएं।
इरफान

7

अगर आपको कुछ भी करने की जरूरत नहीं है - बस पूरे DB को खाली करें और एक साफ री-इंस्टॉल करें।

रनिंग मास-ट्रंकट्स हमेशा मुझे टूटे हुए कुंजी संबंधों के किसी भी संभावित स्थायी प्रभाव से चिंतित करते हैं।

फास्ट डीबी शुद्धिकरण

इस स्क्रिप्ट का उपयोग करते हुए ,

cd /path/to/my/magento/store
wget -O mage-dbpurge.sh sys.sonassi.com/mage-dbpurge.sh
chmod +x mage-dbpurge.sh
./mage-dbpurge.sh

Are you 100% sure you want to purge $DBNAME? [y/N]: y
Are you 110% sure you want to purge $DBNAME? [y/N]: y

MYSQL DB PURGE COMPLETE

वह डेटाबेस में हर एक तालिका को पूरी तरह से खाली कर देगा और हटा देगा। यदि आपको कुछ भी बनाए रखने की आवश्यकता है, तो इसका उपयोग न करें ।


इनमें से अधिकांश वास्तव में स्केच प्राप्त करते हैं। विदेशी प्रमुख निर्भरता को बंद करने के साथ शुरू करना। यदि आप उदाहरण के लिए, प्रमुख उत्पाद, प्रमुख विक्रय क्रम आदि को हटाते हैं, तो एक संबंधपरक डेटाबेस को स्वचालित रूप से हटाने के लिए नहीं माना जाता है, जबकि विदेशी कुंजी निर्भरताएं सक्रिय हैं क्योंकि सभी संदर्भित तालिकाओं में शीर्ष स्तर के आइटम के साथ सभी रिकॉर्ड हटा दिए जाते हैं? क्या होगा यदि आप उस छंटनी सूची में एक तालिका का नाम याद करते हैं जो इसे विदेशी कुंजी रिश्तों के साथ बंद कर रहा है? MagentoCommerce साइट ऑडबॉल त्रुटि संदेशों के साथ शानदार है जो इन बड़े पैमाने पर साफ़ होने के बाद दिखाई देते हैं।
फियास्को लैब्स

खैर, उनकी पटकथा को देखते हुए, यह वास्तव में हर तालिका को गिरा देगा। विदेशी कुंजी जांचों को अक्षम करने के लिए, आपको इसकी आवश्यकता है ताकि आपको सभी तालिकाओं को छोड़ने के लिए उचित क्रम का पता न लगाना पड़े।
ली सेफ़्रेइट

@LeeSaferite - मुझे लगता है कि FiascoLabs अन्य समाधानों की बात कर रहा था जो कि मेरे द्वारा सुझाए गए कुल विस्मरण के आधार पर ट्रंकट -ओनली प्रकार के समाधानों की पेशकश कर रहे थे।
बेन लेसानी - सोनासी

वास्तव में मेरा क्या मतलब था!
फासको लैब्स

7

विकास के चरण में, एक नई Magento ईकामर्स वेबसाइट लॉन्च करने से पहले, आपको हमेशा परीक्षण करना होगा और इसके लिए यह सुनिश्चित करने के लिए परीक्षण के आदेश और ग्राहक बनाने होंगे कि सभी प्रक्रियाएँ सही ढंग से चलें और जैसा कि आप उम्मीद करेंगे।

यह अक्सर सिस्टम में परीक्षण डेटा का एक लोड छोड़ने को समाप्त कर सकता है जो साइट लॉन्च होने के बाद आप नहीं चाहते हैं। Magento कई डेटाबेस तालिकाओं में डेटा सम्मिलित करने के लिए कुख्यात है, इसलिए हमने नीचे SQL स्क्रिप्ट प्रदान की है जो आपके Magento डेटाबेस से सभी डेटा को आसानी से हटा देगा (और बिक्री, चालान, ग्राहकों और शिपिंग के लिए इंक्रीमेंट काउंटर रीसेट कर देगा)। यह 1.4.0.1 से 1.9.0.1 तक के Magento संस्करणों पर काम करने की जांच और पुष्टि की गई है।

#Tested on Magento CE 1.4.1.1 - 1.9.0.1

SET FOREIGN_KEY_CHECKS=0;

##############################
# SALES RELATED TABLES
##############################
TRUNCATE `sales_flat_creditmemo`;
TRUNCATE `sales_flat_creditmemo_comment`;
TRUNCATE `sales_flat_creditmemo_grid`;
TRUNCATE `sales_flat_creditmemo_item`;
TRUNCATE `sales_flat_invoice`;
TRUNCATE `sales_flat_invoice_comment`;
TRUNCATE `sales_flat_invoice_grid`;
TRUNCATE `sales_flat_invoice_item`;
TRUNCATE `sales_flat_order`;
TRUNCATE `sales_flat_order_address`;
TRUNCATE `sales_flat_order_grid`;
TRUNCATE `sales_flat_order_item`;
TRUNCATE `sales_flat_order_payment`;
TRUNCATE `sales_flat_order_status_history`;
TRUNCATE `sales_flat_quote`;
TRUNCATE `sales_flat_quote_address`;
TRUNCATE `sales_flat_quote_address_item`;
TRUNCATE `sales_flat_quote_item`;
TRUNCATE `sales_flat_quote_item_option`;
TRUNCATE `sales_flat_quote_payment`;
TRUNCATE `sales_flat_quote_shipping_rate`;
TRUNCATE `sales_flat_shipment`;
TRUNCATE `sales_flat_shipment_comment`;
TRUNCATE `sales_flat_shipment_grid`;
TRUNCATE `sales_flat_shipment_item`;
TRUNCATE `sales_flat_shipment_track`;
TRUNCATE `sales_invoiced_aggregated`;            # ??
TRUNCATE `sales_invoiced_aggregated_order`;        # ??
TRUNCATE `log_quote`;

ALTER TABLE `sales_flat_creditmemo_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_shipping_rate` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_track` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated_order` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;

#########################################
# DOWNLOADABLE PURCHASED
#########################################
TRUNCATE `downloadable_link_purchased`;
TRUNCATE `downloadable_link_purchased_item`;

ALTER TABLE `downloadable_link_purchased` AUTO_INCREMENT=1;
ALTER TABLE `downloadable_link_purchased_item` AUTO_INCREMENT=1;

#########################################
# RESET ID COUNTERS
#########################################
TRUNCATE `eav_entity_store`;
ALTER TABLE  `eav_entity_store` AUTO_INCREMENT=1;


##############################
# CUSTOMER RELATED TABLES
##############################
TRUNCATE `customer_address_entity`;
TRUNCATE `customer_address_entity_datetime`;
TRUNCATE `customer_address_entity_decimal`;
TRUNCATE `customer_address_entity_int`;
TRUNCATE `customer_address_entity_text`;
TRUNCATE `customer_address_entity_varchar`;
TRUNCATE `customer_entity`;
TRUNCATE `customer_entity_datetime`;
TRUNCATE `customer_entity_decimal`;
TRUNCATE `customer_entity_int`;
TRUNCATE `customer_entity_text`;
TRUNCATE `customer_entity_varchar`;
TRUNCATE `tag`;
TRUNCATE `tag_relation`;
TRUNCATE `tag_summary`;
TRUNCATE `tag_properties`;            ## CHECK ME
TRUNCATE `wishlist`;
TRUNCATE `log_customer`;

ALTER TABLE `customer_address_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `tag` AUTO_INCREMENT=1;
ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
ALTER TABLE `tag_properties` AUTO_INCREMENT=1;
ALTER TABLE `wishlist` AUTO_INCREMENT=1;
ALTER TABLE `log_customer` AUTO_INCREMENT=1;


##############################
# ADDITIONAL LOGS
##############################
TRUNCATE `log_url`;
TRUNCATE `log_url_info`;
TRUNCATE `log_visitor`;
TRUNCATE `log_visitor_info`;
TRUNCATE `report_event`;
TRUNCATE `report_viewed_product_index`;
TRUNCATE `sendfriend_log`;
### ??? TRUNCATE `log_summary`

ALTER TABLE `log_url` AUTO_INCREMENT=1;
ALTER TABLE `log_url_info` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor_info` AUTO_INCREMENT=1;
ALTER TABLE `report_event` AUTO_INCREMENT=1;
ALTER TABLE `report_viewed_product_index` AUTO_INCREMENT=1;
ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1;
### ??? ALTER TABLE `log_summary` AUTO_INCREMENT=1;

SET FOREIGN_KEY_CHECKS=1;

5

यदि आप ईई के साथ काम कर रहे हैं, तो आपको एंटरप्राइज यूआरएल को फिर से लिखना चाहिए, क्योंकि उनके पास विदेशी कुंजी बाधाएं नहीं हैं और डेटा आयात नहीं कर रहे हैं (लेकिन स्पष्ट रूप से यूआरएल सेट नहीं कर रहे हैं) पुराने उत्पादों के यूआरएल आपके नए आयात से जुड़े होंगे उत्पादों।

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `catalog_product_entity_url_key`;
TRUNCATE TABLE `catalog_category_entity_url_key`;
TRUNCATE TABLE `enterprise_url_rewrite`;
TRUNCATE TABLE `enterprise_url_rewrite_product_cl`;
TRUNCATE TABLE `enterprise_url_rewrite_category_cl`;
TRUNCATE TABLE `enterprise_catalog_category_rewrite`;
SET FOREIGN_KEY_CHECKS = 1;

4

एक बात जिसका किसी ने उल्लेख नहीं किया है, वह है टैक्स टेबल साफ़ करना। यदि आप नहीं करते हैं, तो आपको कर तालिका में दोहराए गए क्रमांक आईडी प्रविष्टियां मिलेंगी (जब आप आदेश क्रमांक फिर से शुरू करते हैं, तो आपके पास एक ही आईडी कई बार दिखाई जाएगी)। कई आइटम, इनवॉइस / मेमो पर कई लाइन आइटम के रूप में दिखाई देंगे, दोनों एडमिन और क्लाइंट की तरफ। उपरोक्त पदों में विधियों का उपयोग करके परीक्षण / समाशोधन (और कर तालिकाओं को साफ़ नहीं करना), थोड़ी देर के बाद मेरे पास 10 अलग-अलग कर लाइन आइटम थे जो एक एकल आदेश के लिए दिखाई दे रहे थे।

नोट - कर अभी भी सही तरीके से लिया गया था, लेकिन मेमो और इनवॉइस पर यह सभी आइटम दिखा रहा था। बहुत भ्रामक अगर एक ग्राहक को यह देखना था।

तो ऊपर जोड़ने के लिए:

TRUNCATE `sales_order_tax`;
TRUNCATE `sales_order_tax_item`;
ALTER TABLE `sales_order_tax` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_tax_item` AUTO_INCREMENT=1; 

और अच्छे उपाय के लिए:

TRUNCATE `sales_payment_transaction`;
ALTER TABLE `sales_payment_transaction` AUTO_INCREMENT=1; 

2

आपके पास परीक्षणों के लिए अलग डीबी होना चाहिए। Magento परीक्षण की रूपरेखा देखें। परीक्षणों के बाद db को साफ़ करने के सभी विचार गलत हैं।


2

मैं एक नई Magento साइट लॉन्च करने से पहले सरल SQL स्क्रिप्ट को बनाए रखने के लिए एक रिपॉजिटरी सेटअप करता हूं। अब तक वे मदद कर सकते हैं:

  1. Mage से खाली परीक्षण डेटा; आदेश, ग्राहक, रिपोर्ट, लॉग आदि।
  2. विभिन्न एक्सटेंशन से खाली डेटा
  3. अगले आदेश, चालान, शिपमेंट और क्रेडिटमेमो के लिए वांछित आईडी सेट करें

https://github.com/ccondrup/mage-reset
उन्हें बेहतर बनाने में मदद करें!


उन लिपियों महान हैं, हालांकि, वहाँ एक MySQL संस्करण वे के साथ चलाने के लिए माना जाता है? मैंने अपने देव बॉक्स की तुलना में कम MySQL संस्करण वाले सर्वर पर कोशिश की और मुझे यह मिला: ERROR 1064 (42000) लाइन 160 पर: आपके SQL सिंटैक्स में एक त्रुटि है; मैनुअल है कि सही वाक्य रचना अगर मौजूद है 'के पास परिसीमक || ड्रॉप प्रक्रिया का उपयोग करने के लिए अपने सर्वर संस्करण के लिए संगत की जाँच ccdata_empty_testdata|| यह मैं हो सकता है, लेकिन अन्यथा महान स्क्रिप्ट !!!
हेनरी का कैट

@ हेनरीकैट धन्यवाद - मुझे लगता है कि अगर MySQL के एक बहुत पुराने संस्करण का उपयोग कर यह DELIMITER कमांड का समर्थन नहीं कर सकता है। मुझे पता नहीं चला कि यह किस MySQL संस्करण में पेश किया गया था। इसे MySQL CLI में आज़माएं, अगर यह वहां काम करता है तो शायद यह स्क्रिप्ट में लाइन एंडिंग का मामला है।
ccondrup

2

बस मेरे 2 सेंट ...

यह पता लगाने के बजाय कि क्या हटाना है, और केवल यह महसूस करना कि मैं बाद में क्या याद कर रहा हूं, मैं कुछ वीएम चलाता हूं, और मैं विभिन्न चरणों में स्नैपशॉट का उपयोग करता हूं, साथ ही मेरे पास दो अलग-अलग साइटें हैं - एक लाइव और एक टेस्ट।

जब मुझे इसकी आवश्यकता हो तो लाइव से "पुनर्स्थापना" परीक्षण के लिए एक स्क्रिप्ट रखना आसान है। इसके अलावा, यदि ग्राहक के पास परीक्षण प्रणाली तक पहुंच है, तो वे लाइव के साथ कुछ भी करने से पहले भी इसके साथ खेल सकते हैं - बैकअप से पुनर्स्थापित करने की आवश्यकता नहीं है और प्रक्रिया में आदेश और अन्य परिवर्तनों को खोना है ( हालांकि यह आपकी बैकअप रणनीति का परीक्षण करता है .. । )

मुझे लगता है कि यह कस्टम (पुरानी?) स्क्रिप्ट को हटाने के लिए (बहुत अधिक?) सामान चलाने से बेहतर और "सुरक्षित" प्रक्रिया है। "

(इसके अलावा, यह नीचे टिप्पणी करने के लिए स्वतंत्र महसूस करें क्योंकि मैं अभी तक टिप्पणी नहीं कर सकता!)


1

MYSQL ड्रॉप और DB बनाएँ तब उपयोगकर्ता विशेषाधिकार और Magento व्यवस्थापक उपयोगकर्ता जोड़ें।

DROP DATABASE <dbname>;
CREATE DATABASE <dbname>;
GRANT ALL PRIVILEGES ON <dbname>.* TO <dbusr>@localhost IDENTIFIED BY '<dbusr_pass>';
FLUSH PRIVILEGES;

Magento व्यवस्थापक उपयोगकर्ता जोड़ें:

USE DB_NAME;
LOCK TABLES `admin_role` WRITE , `admin_user` WRITE;
SET @SALT = "rp";
SET @PASS = CONCAT(MD5(CONCAT( @SALT , "ADMIN_PASSWORD") ), CONCAT(":", @SALT ));
SELECT @EXTRA := MAX(extra) FROM admin_user WHERE extra IS NOT NULL;
INSERT INTO `admin_user` (firstname,lastname,email,username,password,created,lognum,reload_acl_flag,is_active,extra,rp_token_created_at) VALUES ('Firstname','Lastname','email@example.com','USER_NAME',@PASS,NOW(),0,0,1,@EXTRA,NOW());
INSERT INTO `admin_role` (parent_id,tree_level,sort_order,role_type,user_id,role_name) VALUES (1,2,0,'U',(SELECT user_id FROM admin_user WHERE username = 'USER_NAME'),'Firstname');
UNLOCK TABLES;

1

मुगदाल के एक उत्तर के आधार पर मैंने मैगेंटो 2.2 में स्पष्ट आदेश और संबंधित डेटा के लिए क्वेरी तैयार की

SET FOREIGN_KEY_CHECKS=0; 
TRUNCATE `sales_creditmemo`; 
TRUNCATE `sales_creditmemo_comment`; 
TRUNCATE `sales_creditmemo_grid`; 
TRUNCATE `sales_creditmemo_item`; 
TRUNCATE `sales_invoice`; 
TRUNCATE `sales_invoice_comment`; 
TRUNCATE `sales_invoice_grid`; 
TRUNCATE `sales_invoice_item`; 
TRUNCATE `sales_order`; 
TRUNCATE `sales_order_address`; 
TRUNCATE `sales_order_grid`; 
TRUNCATE `sales_order_item`; 
TRUNCATE `sales_order_payment`; 
TRUNCATE `sales_order_status_history`; 
TRUNCATE `quote`; 
TRUNCATE `quote_address`; 
TRUNCATE `quote_address_item`; 
TRUNCATE `quote_item`; 
TRUNCATE `quote_item_option`; 
TRUNCATE `quote_payment`; 
TRUNCATE `quote_shipping_rate`; 
TRUNCATE `sales_shipment`; 
TRUNCATE `sales_shipment_comment`; 
TRUNCATE `sales_shipment_grid`; 
TRUNCATE `sales_shipment_item`; 
TRUNCATE `sales_shipment_track`; 
TRUNCATE `sales_invoiced_aggregated`; 
TRUNCATE `sales_invoiced_aggregated_order`; 
TRUNCATE `sales_payment_transaction`;
TRUNCATE `sales_order_aggregated_created`; 
TRUNCATE `sales_order_tax`;
TRUNCATE `sales_order_tax_item`;
TRUNCATE `sendfriend_log`; 
TRUNCATE `cache_tag`;
-- TRUNCATE `tag`;
-- TRUNCATE `tag_relation`;
-- TRUNCATE `tag_summary`;
TRUNCATE `wishlist`; 
-- TRUNCATE `log_quote`;
-- TRUNCATE `report_event`;
ALTER TABLE `sales_creditmemo` AUTO_INCREMENT=1; 
ALTER TABLE `sales_creditmemo_comment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_creditmemo_grid` AUTO_INCREMENT=1; 
ALTER TABLE `sales_creditmemo_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_invoice` AUTO_INCREMENT=1; 
ALTER TABLE `sales_invoice_comment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_invoice_grid` AUTO_INCREMENT=1; 
ALTER TABLE `sales_invoice_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_address` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_grid` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_payment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_status_history` AUTO_INCREMENT=1; 
ALTER TABLE `quote` AUTO_INCREMENT=1; 
ALTER TABLE `quote_address` AUTO_INCREMENT=1; 
ALTER TABLE `quote_address_item` AUTO_INCREMENT=1; 
ALTER TABLE `quote_item` AUTO_INCREMENT=1; 
ALTER TABLE `quote_item_option` AUTO_INCREMENT=1; 
ALTER TABLE `quote_payment` AUTO_INCREMENT=1; 
ALTER TABLE `quote_shipping_rate` AUTO_INCREMENT=1; 
ALTER TABLE `sales_shipment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_shipment_comment` AUTO_INCREMENT=1; 
ALTER TABLE `sales_shipment_grid` AUTO_INCREMENT=1; 
ALTER TABLE `sales_shipment_item` AUTO_INCREMENT=1; 
ALTER TABLE `sales_shipment_track` AUTO_INCREMENT=1; 
ALTER TABLE `sales_invoiced_aggregated` AUTO_INCREMENT=1; 
ALTER TABLE `sales_invoiced_aggregated_order` AUTO_INCREMENT=1; 
ALTER TABLE `sales_payment_transaction` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_aggregated_created` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_tax` AUTO_INCREMENT=1; 
ALTER TABLE `sales_order_tax_item` AUTO_INCREMENT=1; 
ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1; 
-- ALTER TABLE `tag` AUTO_INCREMENT=1;
-- ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
-- ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
ALTER TABLE `cache_tag` AUTO_INCREMENT=1;
-- ALTER TABLE `wishlist` AUTO_INCREMENT=1;
-- ALTER TABLE `log_quote` AUTO_INCREMENT=1;
-- ALTER TABLE `report_event` AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;

0

बस अपने डेटाबेस phpMyadmin मिल गया और फिर तालिका खोलें और फिर इस टैब से sales_flat_orderकेवल tha डेटा निकालें और आपके परीक्षण के आदेश साफ़ हो जाएंगे। किसी भी कोड, कमांड या एक्सटेंशन की आवश्यकता नहीं है। ठंडा।


0

यह एक देर से जवाब है, लेकिन यह मददगार हो सकता है।

मैं Magento 1.7 पर आधारित एक ई-कॉमर्स वेबसाइट विकसित कर रहा हूं और मैं TDD करता हूं।

मुझे लगता है कि हमें डेटाबेस को साफ करके परेशान नहीं होना चाहिए जबकि हम Magento beginTransactionऔर rollbackविधियों का उपयोग कर सकते हैं ।

यहाँ एक उदाहरण है

public function setUp()
{
    parent::setUp();
    /** @var Mage_Core_Model_Resource $core */
    $core = Mage::getSingleton('core/resource');
    $core->getConnection('default_write')->beginTransaction();
}

public function tearDown()
{
    parent::tearDown();
    /** @var Mage_Core_Model_Resource $core */
    $core = Mage::getSingleton('core/resource');
    $core->getConnection('default_write')->rollBack();
    Mage::reset();
}

यह उत्तर इस Magento के उत्तर से प्रेरित है , इसे आगे पढ़ने के लिए देखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.