Удалить всех клиентов в Magento - PullRequest
8 голосов
/ 11 марта 2011

Мне нужно удалить всех клиентов из моей установки Magento, потому что у них плохие даты.У меня есть 70000 клиентов на моем разработанном сайте.Как я могу сделать это с SQL?

Ответы [ 4 ]

33 голосов
/ 11 марта 2011

Создайте BACKUP и сначала протестируйте на сервере dev! Это удалит все данные клиента, включая журналы.

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;
12 голосов
/ 02 августа 2012
Mage::register('isSecureArea', true);

$customers = Mage::getModel("customer/customer")->getCollection();

foreach ($customers as $customer) {
    $customer->delete();
}

Обязательно узнайте, что вы делаете, хотя ... Вы также можете отключить клиента, если удаление не то, что вам нужно.

1 голос
/ 11 марта 2011

статья w3schools по SQL delete может помочь. Зачем их удалять? - вы потеряете их всех. Почему бы не исправить плохие даты?

Отказ от ответственности: пожалуйста, будьте осторожны и не пытайтесь сделать это, если вы не знаете, что делаете

0 голосов
/ 07 декабря 2015

Или вы просто создаете сценарий оболочки и делаете что-то подобное (не быстро, но чисто):

 /*
 * Starter
 * */
public function run()
{
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    ini_set('memory_limit', '4096M');
    if (!$this->getArg('iknowwhatido') || $this->getArg('iknowwhatido') != 'yes') {
        $this->usageHelp();
        echo "DEACTIVATED (call it with param '-iknowwhatido yes' to make it work!) \n";
        return -1;
    }
    Mage::register('isSecureArea', true);
    $customers = Mage::getModel("customer/customer")->getCollection()->delete();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...