Минимизировать базу данных, чтобы экспортировать все продукты Magento

У меня есть сайт Magento 1.4.0.1, и я хочу экспортировать все продукты в формате CSV. Я попробовал запустить профиль импорта / экспорта, но предел max_timeout в php.ini слишком низок в течение времени, необходимого для выполнения операции. Поскольку мой провайдер не позволяет мне устанавливать более высокий max_timeout, мне нужно скопировать сайт на мою локальную машину и запустить профиль оттуда.

Моя локальная машина работает на Windows 7 и WAMP 2.2

Я скопировал все файлы, но у меня возникла настоящая проблема с импортом базы данных, так как она имеет 300 МБ. Я настроил свой php.ini для:

 max_execution_time=3600 post_max_size=999M memory_limit=999M upload_max_filesize=999M max_input_time=5000 

Я перезапустил сервер WAMP и импортировал дамп через PhpMyAdmin, но я все еще получаю ошибки. Поэтому мой план состоит в том, чтобы уменьшить размер базы данных, чтобы иметь функциональный бэкэнд и все продукты, и опустошить все несущественные таблицы. Проблема в том, что я не знаю, какие из них жизненно необходимы, а какие нет. Можете ли вы предложить список таблиц, которые мне нужно сохранить, или те, которые я должен опорожнить?

Обратите внимание, что, поскольку я запускаю WAMP на окнах, у меня нет возможности использовать любую командную строку SSH.

Я поделюсь простым скриптом php, который я обычно использую для получения дампа Magento DB с меньшим размером.

Например, вы можете создать файл с именем: tiny-dump.php в корневом каталоге Magento и вставить скрипт внутри этого файла. Позже вы можете просто запустить скрипт, если вы нажмете URL: http://mydomain.com/tiny-dump.php … если все будет хорошо, вы найдете файл sql с дампом DB в каталоге var /. Имя файла будет содержать {имя базы данных} – {текущая дата} .sql

Для вашей информации я использовал некоторые идеи из этой статьи: http://www.crucialwebhost.com/kb/article/log-cache-maintenance-script/

Сценарий будет работать, если в вашем хостинге установлен «mysqldump»,

Вот ссылка на скрипт: https://gist.github.com/4495889

Вот сценарий:

 <?php $xml = simplexml_load_file('./app/etc/local.xml', NULL, LIBXML_NOCDATA); $db['host'] = $xml->global->resources->default_setup->connection->host; $db['name'] = $xml->global->resources->default_setup->connection->dbname; $db['user'] = $xml->global->resources->default_setup->connection->username; $db['pass'] = $xml->global->resources->default_setup->connection->password; $db['pref'] = $xml->global->resources->db->table_prefix; function export_tiny() { global $db; $sqlFileName = 'var/' . $db['name'] . '-' . date('jmyhi-s') . '.sql'; $tables = array( 'dataflow_batch_export', 'dataflow_batch_import', 'log_customer', 'log_quote', 'log_summary', 'log_summary_type', 'log_url', 'log_url_info', 'log_visitor', 'log_visitor_info', 'log_visitor_online', 'index_event', 'report_event', 'report_compared_product_index', 'report_viewed_product_index', 'catalog_compare_item', 'catalogindex_aggregation', 'catalogindex_aggregation_tag', 'catalogindex_aggregation_to_tag' ); $ignoreTables = ' '; foreach($tables as $table) { $ignoreTables .= '--ignore-table=' . $db['name'] . '.' . $db['pref'] . $table . ' '; } $dumpSchema = 'mysqldump' . ' '; $dumpSchema .= '--no-data' . ' '; $dumpSchema .= '-u ' . $db['user'] . ' '; $dumpSchema .= '-p' . $db['pass'] . ' '; $dumpSchema .= $db['name'] .' > ' . $sqlFileName; exec($dumpSchema); $dumpData = 'mysqldump' . ' '; $dumpData .= $ignoreTables; $dumpData .= '-u ' . $db['user'] . ' '; $dumpData .= '-p' . $db['pass'] . ' '; $dumpData .= $db['name'] .' >> ' . $sqlFileName; exec($dumpData); } export_tiny(); 

Известные проблемы: Иногда скрипту не удается создать дамп БД, если пароль БД содержит специальные символы.

Надеюсь, это полезно!