Membersihkan Magento setelah pengujian

75

Saat ini saya sedang melakukan banyak tes di Magento sehingga saya bisa membiasakan diri dengannya. Sayangnya database sangat berantakan dengan tes saya. Saya ingin membersihkan basis data sehingga saya bisa mulai dari awal lagi Ini berarti melakukan hal berikut:

  • Membersihkan semua produk
  • Menghapus semua atribut
  • Menghapus semua set atribut
  • Menghapus semua kategori
  • Menghapus semua pesanan, pengiriman, transaksi dll.

Saya telah menemukan posting di forum Magento untuk membersihkan produk, yang merupakan SQL berikut:

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;

Saya akan membutuhkan yang sama untuk yang lain yang disebutkan. Sayangnya saya tidak tahu tabel mana yang menyimpan semua data yang berbeda, kalau tidak saya akan melakukannya sendiri. Saya juga tidak ingin menghapus tabel yang salah secara tidak sengaja. Saya harap Anda dapat membantu saya!

Sangat beku
sumber
Data mana dari database pengujian Anda yang masih Anda butuhkan? Apakah Anda mempertimbangkan untuk mengekspor data itu (misalnya konfigurasi Anda core_config_data) dan mulai lagi dari awal?
Alex
1
Lihat juga di github.com/netz98/n98-magerun#stripped-database-dump - ini memungkinkan Anda untuk mengekspor basis data tanpa pesanan, dll. Dan kemudian Anda dapat mengimpor kembali.
Alex
@Alex Saya tidak yakin apa yang harus disimpan karena saya mendapat ini dari pihak ketiga yang menjadi basis toko. Saya perlu terus mengembangkannya sendiri, tetapi saya tidak sepenuhnya yakin apa yang bisa saya buang dan apa yang tidak. Juga, saya akan melihat ke tautan yang Anda berikan.
Deep Frozen
Saya tidak sengaja membersihkan semua atribut. Termasuk atribut Sistem Magento. Saya tidak dapat membuat produk sekarang. Apakah ada cara hanya untuk mengembalikan atribut sistem inti Magento default?
Jelly_Doughnut
@Jelly_Doughnut Saya sarankan mengajukan pertanyaan terpisah
Kristof di Fooman

Jawaban:

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;

Untuk Pesanan

    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;

Anda dapat menggunakan fungsi ini untuk menghapus set atribut.

 $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";
    }
}

Dan cari tabel ini untuk menghapus atribut

catalog_eav_attribute
eav_attribute
eav_attribute_set

Periksa eav_attributekolom is_user_definedsehingga Anda bisa mendapatkan ide.

Mufaddal
sumber
Inilah tepatnya yang saya cari! Apakah Anda juga memilikinya untuk atribut dan set atribut?
Deep Frozen
Tidak, saya tidak punya sql untuk atribut dan set atribut, Anda dapat menghapus atribut dan set atribut secara manual jika tidak ada banyak entri
Mufaddal
Sayangnya ada banyak dari mereka. Bagaimanapun, terima kasih untuk ini, itu pasti akan membantu! Saya hanya harus menemukan mereka untuk atribut sendiri, saya kira.
Deep Frozen
@Rune Ok periksa jawaban saya yang diperbarui
Mufaddal
2
Catatan tentang Perusahaan Anda juga harus memotong: enterprise_customer_sales_flat_order enterprise_customer_sales_flat_order_address enterprise_sales_order_grid_archive
Tegan Snyder
19

Anda bisa mengosongkan seluruh database dan Magento akan menjalankan semua skrip instal / upgrade / data lagi pada pageload berikutnya. Magento ini akan "mengatur ulang pabrik" dan akan menghancurkan semua perubahan Anda.

Kebiasaan yang baik adalah membuat modul yang berisi semua pengaturan dasar toko Anda di dalam skrip install / upgrade / data. Ini memiliki keuntungan bahwa pengaturan ini disimpan dalam kontrol versi dan semua situs web berbeda yang Anda miliki untuk toko (produksi, pementasan, pengujian penerimaan pengguna, dll.) Akan selalu diperbarui.

Jika ada banyak orang yang bekerja di situs, kami bahkan membuat modul baru untuk setiap grup pengaturan sehingga versi tidak bertentangan ketika kami menggabungkan kode.

Dalam kasus Anda, saya akan membuat modul yang mengatur semua pengaturan yang ingin Anda pertahankan. Jika Anda menghapus database, Magento akan sepenuhnya bersih DAN termasuk pengaturan yang Anda inginkan!

Anda dapat melihat skrip instal / perbarui inti Magento untuk melihat bagaimana Magento menginstal data / pengaturan awal.

Erfan
sumber
3
Ini adalah ide yang baik, hanya ada satu masalah: Jika Anda telah menginstal ekstensi Anda mungkin mengalami masalah, bahwa mereka tidak diuji dengan cara ini, sehingga mereka melempar kesalahan, karena skrip instalasi modul berjalan sebelum modul-modul tertentu dan dependensi tidak terpenuhi. Tapi saya juga suka metode ini.
Fabian Blechschmidt
Bisakah Anda jelaskan itu? Jika Anda memasukkan pengaturan berdasarkan modul pihak ketiga dalam modul Anda sendiri, cukup deklarasikan modul pihak ketiga sebagai dependensi (di app / etc / module.xml) dan modul pemasangan / peningkatan modul akan berjalan setelah modul ketiga Modul -party '.
Erfan
1
ya, tetapi jika modul pihak ketiga tidak melakukan itu atau memasukkan data dalam pemasangan alih-alih skrip data Anda mungkin mendapatkan masalah karena pesanan. Dalam kebanyakan kasus, para pengembang berasumsi, bahwa magento sudah diinstal ;-)
Fabian Blechschmidt
1
Salah satu masalah potensial lainnya adalah Anda mungkin ingin mempertahankan pengaturan konfigurasi dan / atau konten CMS. Jadi itu harus didukung dan diimpor kembali setelah membersihkan database sepenuhnya.
davidalger
1
@davidalger inti dari modul pengaturan ini adalah untuk menjaga pengaturan konfigurasi dan / atau konten CMS sehingga Anda tidak perlu mengimpornya kembali. yaitu Anda dapat menambahkan halaman CMS dalam skrip data Anda sehingga mereka bisa dimasukkan lagi secara otomatis setelah Anda membersihkan db.
Erfan
7

Jika Anda tidak membutuhkan apa pun - kosongkan seluruh DB dan instal ulang bersih.

Menjalankan truncat massal selalu membuat saya khawatir dengan potensi efek jangka panjang dari hubungan kunci yang terputus.

Pembersihan DB cepat

Menggunakan skrip ini ,

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

Itu akan benar-benar kosong dan menghapus setiap tabel dalam database. Jangan menggunakannya jika Anda perlu mempertahankan apa pun .

Ben Lessani - Sonassi
sumber
Sebagian besar benar-benar samar. Dimulai dengan mematikan dependensi kunci asing. Bukankah database relasional seharusnya menghapus semuanya secara otomatis jika Anda misalnya, menghapus produk utama, pesanan penjualan utama, dll. Sementara dependensi kunci asing aktif karena semua catatan di semua tabel yang direferensikan dihapus dengan item tingkat atas? Bagaimana jika Anda melewatkan nama tabel dalam daftar pemotongan yang melakukannya dengan hubungan kunci asing terputus? Situs MagentoCommerce luar biasa dengan pesan kesalahan aneh yang muncul setelah penghapusan massal ini.
Fiasco Labs
Nah, melihat skripnya, itu memang akan menjatuhkan setiap tabel. Sedangkan untuk menonaktifkan pemeriksaan kunci asing, Anda memerlukannya sehingga Anda tidak perlu mencari tahu urutan yang tepat untuk menjatuhkan semua tabel.
Lee Saferite
@LeeSaferite - Saya pikir FiascoLabs merujuk pada solusi lain yang menawarkan solusi tipe truncate-only versus total penghapusan yang saya sarankan.
Ben Lessani - Sonassi
Persis seperti yang saya maksud!
Fiasco Labs
7

Sebelum meluncurkan situs web eCommerce Magento baru, pada tahap pengembangan, Anda harus selalu melakukan pengujian dan ini akan membutuhkan membuat pesanan pengujian dan pelanggan untuk memastikan bahwa semua proses berfungsi dengan benar dan seperti yang Anda harapkan.

Ini sering kali berakhir dengan meninggalkan banyak data uji dalam sistem yang tidak Anda inginkan begitu situs diluncurkan. Magento terkenal karena memasukkan data dalam beberapa tabel basis data sehingga kami telah menyediakan skrip SQL di bawah ini yang akan menghapus semua data ini dari basis data Magento Anda (dan mengatur ulang penghitung kenaikan untuk penjualan, faktur, pelanggan, dan pengiriman). Ini telah diuji dan dikonfirmasi berfungsi pada versi Magento dari 1.4.0.1 hingga 1.9.0.1.

#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;
ujung timur
sumber
5

Jika Anda bekerja dengan EE, Anda juga harus memotong tabel penulisan ulang url perusahaan, karena mereka tidak memiliki kendala kunci asing dan pada mengimpor data (tetapi tidak secara eksplisit mengatur url) url dari produk lama akan terhubung ke impor baru Anda produk.

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;
Tobias
sumber
4

Satu hal yang belum pernah disebutkan adalah membersihkan meja pajak. Jika tidak, Anda akan mendapatkan entri Id pesanan berulang di tabel pajak (saat Anda melakukan pemesanan lagi di ID Order awal, Anda akan memiliki Id yang sama muncul beberapa kali). Beberapa item akan ditampilkan pada faktur / memo sebagai beberapa item baris, baik di sisi admin dan klien. Setelah pengujian / kliring menggunakan metode dalam posting di atas (dan tidak membersihkan tabel pajak), setelah beberapa saat saya memiliki 10 item pajak yang berbeda muncul untuk satu pesanan.

Catatan - pajak sudah / masih dibebankan dengan benar, tetapi pada memo dan faktur itu menunjukkan semua item. Sangat membingungkan jika klien melihat itu.

Jadi untuk menambahkan di atas:

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; 

Dan untuk ukuran yang baik:

TRUNCATE `sales_payment_transaction`;
ALTER TABLE `sales_payment_transaction` AUTO_INCREMENT=1; 
pengguna4855
sumber
2

Anda harus memiliki db terpisah untuk tes. Lihat kerangka uji magento. Semua ide untuk menghapus db setelah tes salah.

Dmytro Zavalkin
sumber
2

Saya menyiapkan repositori untuk mengelola skrip SQL sederhana agar dijalankan sebelum meluncurkan situs Magento baru. Sejauh ini mereka dapat membantu:

  1. data uji kosong dari Mage; pesanan, pelanggan, laporan, log dll.
  2. mengosongkan data uji dari berbagai ekstensi
  3. atur ID yang diinginkan untuk pesanan, faktur, pengiriman, dan kredit berikutnya

https://github.com/ccondrup/mage-reset
Bantu meningkatkannya!

ccondrup
sumber
Namun skrip-skrip itu hebat, apakah ada versi MySQL yang seharusnya dijalankan? Saya mencoba pada server dengan versi MySQL yang lebih rendah daripada pada kotak dev saya dan saya mendapatkan ini: ERROR 1064 (42000) pada baris 160: Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MySQL Anda untuk sintaks yang tepat untuk digunakan di dekat 'DELIMITER || PROSEDUR DROP JIKA ADA ccdata_empty_testdata| Ini mungkin saya, tetapi script yang hebat !!!
Kucing Henry
@ Henry'sCat Terima kasih - Saya rasa jika menggunakan versi MySQL yang sangat lama mungkin tidak mendukung perintah DELIMITER. Saya tidak dapat menemukan versi MySQL yang diperkenalkan. Coba di MySQL CLI, jika berfungsi di sana, mungkin itu hanya masalah akhiran baris dalam skrip.
ccondrup
2

Hanya 2 sen saya ...

Daripada mencari tahu apa yang harus dihapus, dan hanya menyadari apa yang saya lewatkan kemudian, saya menjalankan beberapa VM, dan saya menggunakan snapshot pada berbagai tahap, ditambah saya memiliki dua situs terpisah - satu hidup dan satu tes.

Sangat mudah untuk memiliki skrip untuk "mengembalikan" tes dari live ketika saya membutuhkannya. Juga, jika pelanggan memiliki akses ke sistem pengujian, mereka dapat bermain dengannya juga sebelum melakukan sesuatu dengan live - tidak perlu mengembalikan dari cadangan dan kehilangan pesanan dan perubahan lain dalam proses ( meskipun itu menguji strategi cadangan Anda .. . )

Saya pikir ini proses yang jauh lebih baik dan "lebih aman" daripada menjalankan skrip khusus (usang?) Untuk menghapus (terlalu banyak?) Hal-hal ...

(Juga, jangan ragu untuk mengundurkan diri karena saya belum bisa berkomentar!)

KolonUK
sumber
1

MYSQL Drop dan buat DB kemudian tambahkan hak pengguna dan admin magento pengguna.

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

Tambahkan pengguna admin 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 protected]','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;
Garistar
sumber
1

Berdasarkan jawaban dari Mufaddal, saya menyiapkan permintaan untuk menghapus pesanan dan data terkait di Magento 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;
Stanislav Potapenko
sumber
0

Cukup dapatkan phpMyadmin database Anda dan kemudian buka tabel sales_flat_orderdan kemudian cukup hapus data dari tabel ini dan pesanan tes Anda akan dihapus. Tidak perlu kode, perintah, atau ekstensi apa pun. keren.

Asif Mehmood
sumber
0

Ini adalah jawaban yang terlambat, tetapi ini bisa membantu.

Saya sedang mengembangkan situs web e-commerce berdasarkan Magento 1.7 dan saya cenderung ke TDD.

Saya pikir kita tidak perlu repot-repot membersihkan database secara manual selagi kita bisa menggunakan Magento beginTransactiondan rollbackmetode.

Berikut ini sebuah contoh

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();
}

Jawaban ini terinspirasi oleh jawaban Magento ini , kunjungi untuk bacaan lebih lanjut.

Mohamed Abdul-Fattah
sumber