phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Minimize o banco de dados para exportar todos os produtos do Magento


Vou compartilhar um script php simples, que costumo usar para obter um dump Magento DB com menor pegada.

Por exemplo, você pode criar um arquivo com o nome:tiny-dump.php no diretório raiz do Magento e colar o script dentro deste arquivo. Mais tarde, você pode simplesmente executar o script se clicar na url:http://mydomain.com/tiny- dump.php ... se tudo funcionar bem, você encontrará um arquivo sql com o dump do banco de dados no diretório var/. O nome do arquivo conterá {nome do banco de dados}-{data atual}.sql

Para sua informação, usei algumas ideias deste artigo:http:/ /www.crucialwebhost.com/kb/article/log-cache-maintenance-script/

O script funcionará, se o seu provedor de hospedagem tiver instalado o "mysqldump"

Aqui está um link para o script:https://gist.github.com/4495889

Aqui está o roteiro:
<?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('j-m-y-h-i-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();

Problemas conhecidos:Às vezes, o script falha ao criar o dump do banco de dados se a senha do banco de dados contiver caracteres especiais.

Espero que seja útil!