sql >> Databáze >  >> Database Tools >> phpMyAdmin

Minimalizujte databázi, abyste mohli exportovat všechny produkty z Magenta

Podělím se o jednoduchý php skript, který obvykle používám k získání výpisu Magento DB s menším prostorem.

Můžete například vytvořit soubor s názvem:tiny-dump.php v kořenovém adresáři Magento a vložit skript do tohoto souboru. Později stačí spustit skript, pokud zadáte adresu URL:http://mydomain.com/tiny- dump.php ... pokud vše funguje dobře, najdete sql soubor s výpisem DB v adresáři var/. Název souboru bude obsahovat {název DB}-{aktuální datum}.sql

Pro vaši informaci jsem použil některé nápady z tohoto článku:http:/ /www.crucialwebhost.com/kb/article/log-cache-maintenance-script/

Skript bude fungovat, pokud váš poskytovatel hostingu nainstaloval "mysqldump"

Zde je odkaz na skript:https://gist.github.com/4495889

Zde je skript:

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

Známé problémy:Někdy se skriptu nepodaří vytvořit výpis databáze, pokud heslo databáze obsahuje speciální znaky.

Doufám, že je to užitečné!




  1. V datovém souboru BCP došlo k neočekávanému EOF

  2. Připojte se k externímu serveru pomocí phpMyAdmin

  3. Vnořeno ifs do select-where pro podmíněné dynamické filtrování

  4. Uplynul časový limit skriptu, pokud chcete dokončit import, odešlete znovu stejný soubor a import bude pokračovat