1

Magento 1.4.0.1 サイトがあり、すべての製品を CSV 形式でエクスポートしたいと考えています。Import/Export プロファイルを実行しようとしましたphp.iniが、操作の実行に必要な時間に対して max_timeout 制限が低すぎます。私のプロバイダーは max_timeout を高く設定することを許可していないので、サイトをローカル マシンにコピーし、そこからプロファイルを実行する必要があります。

私のローカル マシンは Windows 7 と WAMP 2.2 で動作しています

すべてのファイルをコピーしましたが、データベースが 300MB あるため、データベースのインポートに本当に問題があります。php.ini を次のように構成しました。

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

WAMP サーバーを再起動し、PhpMyAdmin を介してダンプをインポートしましたが、それでもエラーが発生します。したがって、私の計画は、データベースのサイズを縮小して、バックエンドとすべての製品を機能させ、重要でないテーブルをすべて空にすることです。問題は、どれが重要でどれが重要でないか分からないことです。保持しなければならないテーブル、または空にしなければならないテーブルのリストを提案できますか?

私は Windows で WAMP を実行しているので、SSH コマンドラインを使用する可能性がないことに注意してください。

4

1 に答える 1

3

簡単なphpスクリプトを共有します。これは、通常、フットプリントの小さいMagentoDBダンプを取得するために使用します。

たとえば、Magentoのルートディレクトリにtiny-dump.phpという名前のファイルを作成し、このファイル内にスクリプトを貼り付けることができます。後で、次のURLにアクセスすると、スクリプトを実行できます。http: //mydomain.com/tiny-dump.php ...すべてが正常に機能する場合は、var/ディレクトリにDBダンプを含むSQLファイルがあります。ファイル名には{DB名}-{現在の日付}.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('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();

既知の問題:DBパスワードに特殊文字が含まれていると、スクリプトがDBダンプの作成に失敗することがあります。

お役に立てば幸いです。

于 2013-01-09T19:19:22.500 に答える