sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Minimizar la base de datos para exportar todos los productos de Magento

Compartiré un script php simple, que generalmente uso para obtener un volcado de Magento DB con una huella más pequeña.

Por ejemplo, puede crear un archivo con el nombre:tiny-dump.php en el directorio raíz de Magento y pegar el script dentro de este archivo. Más tarde, puede ejecutar el script si presiona la URL:http://mydomain.com/tiny- volcado.php ... si todo funciona bien, encontrará un archivo sql con el volcado de base de datos en el directorio var/. El nombre del archivo contendrá {nombre DB}-{fecha actual}.sql

Para su información, utilicé algunas ideas de este artículo:http:/ /www.crucialwebhost.com/kb/article/log-cache-maintenance-script/

El script funcionará, si su proveedor de alojamiento ha instalado "mysqldump"

Aquí hay un enlace al script:https://gist.github.com/4495889

Aquí está el guión:

<?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 conocidos:A veces, el script no puede crear el volcado de la base de datos si la contraseña de la base de datos contiene caracteres especiales.

¡Espero que sea útil!