*/
/**
 * Since 1.13 new urls processing behaviour was introduced.
 * This tool creates URL redirects(301) for URLs that have been changed during upgrade.
 * Supplementary utility.
 */
require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'Migration.php';
if (count($argv) != 3 || !is_numeric($argv[1]) || !is_numeric($argv[2])) {
    echo "Wrong parameters passed.";
    exit(100);
}
error_reporting(-1);
ini_set('display_errors', 1);
ini_set('memory_limit', -1);
$page = $argv[1];
$batchSize = $argv[2];
$response = new Mage_Core_Controller_Response_Http();
Mage::app()->setResponse($response);
$migration = new Mage_Migration();
$rewriteRequest = Mage::getModel('enterprise_urlrewrite/url_rewrite_request');
$rewrite = Mage::getModel('enterprise_urlrewrite/url_rewrite');
$matchers = Mage::getSingleton('enterprise_urlrewrite/system_config_source_matcherPriority')->getRewriteMatchers();
$rewritesSelect = $migration->getConnection()->select()->from($migration->getResource()->getTableName('core_url_rewrite'), array('product_id', 'category_id', 'store_id', 'request_path'))->order('url_rewrite_id')->limit($batchSize, $page * $batchSize);
foreach ($migration->getConnection()->fetchAll($rewritesSelect) as $rewriteInfo) {
    try {
        $migration->processRewrite($rewriteInfo, $rewriteRequest, $rewrite, $matchers, $migration->getResource());
    } catch (Exception $e) {
        echo $e->getMessage() . "\n";
    }
}
exit(0);
}
if (isset($argv[1]) && intval($argv[1]) > 0) {
    $threadCount = intval($argv[1]);
} else {
    $threadCount = 1;
}
$writer = new Zend_Log_Writer_Stream('php://output');
$writer->setFormatter(new Zend_Log_Formatter_Simple('[%priorityName%]: %message%' . PHP_EOL));
$logger = new Zend_Log($writer);
$logger->info('Initialization...');
error_reporting(-1);
ini_set('display_errors', 1);
ini_set('memory_limit', -1);
$response = new Mage_Core_Controller_Response_Http();
Mage::app()->setResponse($response);
$migration = new Mage_Migration();
$processedCategories = array();
$processedProducts = array();
Mage::getModel('enterprise_mview/client')->init('enterprise_url_rewrite_category')->execute('enterprise_catalog/index_action_url_rewrite_category_refresh');
Mage::getModel('enterprise_mview/client')->init('enterprise_url_rewrite_product')->execute('enterprise_catalog/index_action_url_rewrite_product_refresh');
Mage::getModel('enterprise_mview/client')->init('enterprise_url_rewrite_redirect')->execute('enterprise_urlrewrite/index_action_url_rewrite_redirect_refresh');
$tableProducts = $migration->getConnection()->newTable($migration->getEntityMigrationTable(Mage_Migration::ENTITY_TYPE_PRODUCT))->addColumn('id', Varien_Db_Ddl_Table::TYPE_CHAR, 512);
$tableCategories = $migration->getConnection()->newTable($migration->getEntityMigrationTable(Mage_Migration::ENTITY_TYPE_CATEGORY))->addColumn('id', Varien_Db_Ddl_Table::TYPE_CHAR, 512);
if ($migration->getConnection()->isTableExists($tableProducts->getName())) {
    $migration->getConnection()->dropTable($tableProducts->getName());
}
if ($migration->getConnection()->isTableExists($tableCategories->getName())) {
    $migration->getConnection()->dropTable($tableCategories->getName());
}
$migration->getConnection()->createTable($tableProducts);
$migration->getConnection()->createTable($tableCategories);