phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

Zminimalizuj bazę danych, aby wyeksportować wszystkie produkty z Magento

Podzielę się prostym skryptem php, którego zwykle używam, aby uzyskać zrzut Magento DB o mniejszym rozmiarze.

Na przykład możesz utworzyć plik o nazwie:tiny-dump.php w katalogu głównym Magento i wkleić skrypt do tego pliku. Później możesz po prostu uruchomić skrypt, jeśli trafisz na adres URL:http://mojadomena.com/tiny- dump.php ... jeśli wszystko działa dobrze, znajdziesz plik sql ze zrzutem bazy danych w katalogu var/. Nazwa pliku będzie zawierać {nazwa bazy danych}-{bieżąca data}.sql

Dla twojej informacji wykorzystałem kilka pomysłów z tego artykułu:http:// /www.crucialwebhost.com/kb/article/log-cache-maintenance-script/

Skrypt zadziała, jeśli Twój dostawca hostingu zainstalował "mysqldump"

Oto link do skryptu:https://gist.github.com/4495889

Oto skrypt:

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

Znane problemy:Czasami skrypt nie tworzy zrzutu bazy danych, jeśli hasło bazy danych zawiera znaki specjalne.

Mam nadzieję, że to pomocne!




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Wylogowujesz się z phpMyAdmina?

  2. Jak znaleźć adres IP serwera mySQL od phpmyadmin

  3. #2002 - Serwer nie odpowiada (lub gniazdo lokalnego serwera MySQL nie jest poprawnie skonfigurowane)

  4. Błąd PHPMyAdmin z plikiem konfiguracyjnym

  5. Jak wyświetlić DISTINCT WSZYSTKIE produkty z bazy danych?