Magento升级需要太长时间,永远不会完成

Tar*_*ziz 4 php magento

我正在将magento从1.4.0.1升级到1.7.0.2.最初有一些错误; 修复后,现在升级运行了5个小时,但从未完成.没有显示错误.知道为什么会这样吗?

cha*_*anz 9

我最近将客户magento从V1.4升级到V1.7.2.0,我按照以下步骤操作: - 以下是将网站从Magento v1.4.0.0升级到v1.7.2.0的要点: -

  1. 以压缩格式收集实时数据库备份,不包含以下表: -

    • "log_customer"
    • "log_quote"
    • "log_summary"
    • "log_url"
    • "log_url_info"
    • "log_visitor"
    • "log_visitor_info"

    "log_visitor_online"

  2. 将zipped备份数据库解压缩到您自己的文件系统中的任何文件夹中.

  3. 启动本地WAMP/XAMPP,并使用Web应用程序"phpMyAdmin"创建测试数据库"test_something"或任何其他名称.

  4. 打开命令提示符窗口,然后键入"mysql"以启动MySQL命令提示符.

  5. 使用命令提示符将解压缩的数据库导入测试数据库,这样可以更快地完成任何错误.

  6. 成功导入后,从phpMyAdmin运行文件"DB Changes.txt"中提到的SQL.

  7. 在本地WAMP/XAMPP中提取新的Magento v1.7.2.0,并使用带有旧的livesite数据的测试数据库开始安装此Magento.

  8. 在成功安装Magento之后,使用命令提示符以压缩格式导出和转储新升级的数据库,这样它将更快,没有任何错误.

  9. 提取新的压缩Magento或将新的解压缩的Magento v1.7.2.0上传到实时服务器的文件系统,无需安装任何东西.

  10. 将此压缩数据库上载到实时服务器的文件系统中,然后打开实时服务器的PuTTY.

  11. 上传本地WAMP/XAMPP的"app/etc/local.xml"Magento文件的副本,以替换现场Magento的"app/etc/local.xml"文件.在将其上传到实时服务器之前,请记住按照新的实时服务器更改此文件的所有数据库凭据.

  12. 切记不要从Web浏览器中浏览Magento以获取实时Web服务器,直到第14点完成.

  13. 使用PuTTY命令,解压缩压缩数据库,然后将其导入实时网站的新数据库.

  14. 成功导入后,搜索"core_config_data"数据库表,其中"path"列值为"%base_url%".将"value"列的所有值替换为实时站点"http://www.livesite.com/"的完整URL,而不提及"index.php".

  15. 将主题及其相关文件上载到新服务器的文件系统.

  16. 上传扩展/模块检查兼容性.

  17. 确保在"系统配置"中配置所需的模块,这些模块来自"管理"面板.

    DB Changes.txt如下: - CREATE TABLE IF NOT EXISTS log_customer( log_idint(10)unsigned NOT NULL AUTO_INCREMENT, visitor_idbigint(20)unsigned DEFAULT NULL, customer_idint(11)NOT NULL DEFAULT'0', login_atdatetime NOT NULL DEFAULT'0000 -00-00 00:00:00', logout_atdatetime DEFAULT NULL, store_idsmallint(5)unsigned NOT NULL,PRIMARY KEY(log_id),KEY IDX_VISITOR(visitor_id))ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT ='Customers log information';


    -

    - 表的表结构 log_quote

    CREATE TABLE IF NOT EXISTS log_quote( quote_idint(10)unsigned NOT NULL DEFAULT'0',visitor_idbigint(20)unsigned DEFAULT NULL, created_atdatetime NOT NULL DEFAULT'0000-00 00:00:00 ', deleted_atdatetime DEFAULT NULL,PRIMARY KEY(quote_id))ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT ='引用日志数据';


    -

    - 表的表结构 log_summary

    CREATE TABLE IF NOT EXISTS log_summary( summary_idbigint(20)unsigned NOT NULL AUTO_INCREMENT, store_idsmallint(5)unsigned NOT NULL, type_idsmallint(5)unsigned DEFAULT NULL, visitor_countint(11)NOT NULL DEFAULT'0', customer_countint(11)NOT NULL DEFAULT' 0',add_datedatetime NOT NULL DEFAULT'0000-00 00:00:00', PRIMARY KEY(summary_id))ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT ='Summary log information';


    -

    - 表的表结构 log_url

    CREATE TABLE IF NOT EXISTS log_url( url_idbigint(20)unsigned NOT NULL DEFAULT'0',visitor_idbigint(20)unsigned DEFAULT NULL, visit_timedatetime NOT NULL DEFAULT'0000-00 00:00:00 ',PRIMARY KEY(url_id),KEY IDX_VISITOR(visitor_id))ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT ='URL访问历史';


    -

    - 表的表结构 log_url_info

    CREATE TABLE IF NOT EXISTS log_url_info( url_idbigint(20)unsigned NOT NULL AUTO_INCREMENT, urlvarchar(255)NOT NULL DEFAULT'', referervarchar(255)DEFAULT NULL,PRIMARY KEY(url_id))ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT ='Detale information about about网址访问';


    -

    - 表的表结构 log_visitor

    CREATE TABLE IF NOT EXISTS log_visitor( visitor_idbigint(20)unsigned NOT NULL AUTO_INCREMENT, session_idchar(64)NOT NULL DEFAULT'', first_visit_atdatetime DEFAULT NULL, last_visit_atdatetime NOT NULL DEFAULT'0000- 00:00:00', last_url_idbigint(20) unsigned NOT NULL DEFAULT'0', store_idsmallint(5)unsigned NOT NULL,PRIMARY KEY(visitor_id))ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT ='System visitor log';


    -

    - 表的表结构 log_visitor_info

    CREATE TABLE IF NOT EXISTS log_visitor_info( visitor_idbigint(20)unsigned NOT NULL DEFAULT'0', http_referervarchar(255)DEFAULT NULL, http_user_agentvarchar(255)DEFAULT NULL, http_accept_charsetvarchar(255)DEFAULT NULL, http_accept_languagevarchar(255)DEFAULT NULL, server_addrbigint(20) DEFAULT NULL, remote_addrbigint(20)DEFAULT NULL,PRIMARY KEY(visitor_id))ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT ='访问者的附加信息';


    -

    - 表的表结构 log_visitor_online

    CREATE TABLE IF NOT EXISTS log_visitor_online( visitor_idbigint(20)unsigned NOT NULL AUTO_INCREMENT, visitor_typechar(1)NOT NULL, remote_addrbigint(20)NOT NULL, first_visit_atdatetime DEFAULT NULL, last_visit_atdatetime DEFAULT NULL, customer_idint(10)unsigned DEFAULT NULL, last_urlvarchar(255)DEFAULT NULL,PRIMARY KEY(visitor_id),KEY IDX_VISITOR_TYPE(visitor_type),KEY IDX_VISIT_TIME(first_visit_at,last_visit_at),KEY IDX_CUSTOMER(customer_id))ENGINE = InnoDB DEFAULT CHARSET = utf8;

    TRUNCATE report_event;

    TRUNCATE report_viewed_product_index;

    TRUNCATE report_compared_product_index;

    TRUNCATE dataflow_batch_export;

    ALTER TABLE ordersCHANGE url parent_idVARCHAR(255)CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;


Tar*_*ziz 5

我通过更改lib\Varien\Db\Adapter\Pdo\Mysql.php文件中的以下行来查询日志记录

protected $_debug               = true;
protected $_logAllQueries       = true;
protected $_debugFile           = 'var/debug/pdo_mysql.log';
Run Code Online (Sandbox Code Playgroud)

然后通过分析pdo_myql.log文件,我发现一个查询正在执行时出错,因此magento安装程序一次又一次地运行它.

错误是.

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ''11199-1' for key 'UNQ_INCREMENT_ID'
Run Code Online (Sandbox Code Playgroud)

所以我删除了数据库表和pdo_mysql.log中的条目,现在显示其他查询并且升级完成.

在magento升级上工作了很多天,我总结了成功将magento从1.4.0.1升级到1.7.0.2的步骤.显示的这些错误对于其他项目将是不同的,因为每个项目都有不同的数据

  1. 为新版本创建一个新的数据库.(我使用的是 SQLyog,因为它适用于大型数据库导入和导出).

  2. wwwhtdocs中提取并安装新版本1.7.0.1 .我的项目名称是magento171.

  3. 创建新的数据库,因为我们将需要新鲜的分贝修复步骤.

  4. 旧数据库数据导入新数据库.

  5. 在新安装的magento版本中更改etc/local.xml中的新数据库名称.

  6. etc/local.xml中找到并将SET NAMES utf8更改为SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; SET UNIQUE_CHECKS = 0; .

  7. 在新版本的magento中复制旧项目文件.我在空白文件夹中有主题.如果默认文件夹中有模板文件,请复制默认值.

    •app\design\frontend\default\blank

    •app\code\local

    •skin\frontend\default/blank

    •app\etc\modules(复制不在新版本中的文件).

  8. 通过更改lib\Varien\Db\Adapter\Pdo\Mysql.php中的以下行来检查MySql查询

     protected $_debug               = true;
     protected $_logAllQueries       = true;
     protected $_debugFile           = 'var/debug/pdo_mysql.log';
    
    Run Code Online (Sandbox Code Playgroud)
  9. 搜索并将CREATE TABLE更改 为CREATE TABLE IF NOT NOT EXISTS in code/core/mage /.

  10. 更改表core_config_data中的以下条目(使用项目文件夹名称).

      • web/unsecure/base_url | http://localhost/magento171/
      • web/secure/base_url   | http://localhost/magento171/
    
    Run Code Online (Sandbox Code Playgroud)
  11. /errors/local.xml.sample重命名为/errors/local.xml以启用error_reporting.

  12. 通过删除var\cache中的所有数据来清除magento 缓存.

  13. 转到浏览器并键入项目路径. http:// localhost/magento171 /并密切关注浏览器和var/debug/pdo_mysql.log文件.

  14. 我遇到的第一个错误是:文件错误:"D:\ xampp\htdocs\magento171\app\code\core\Mage\Sales\sql\sales_setup\mysql4-upgrade-1.3.99-1.4.0.0.php"

    • SQLSTATE [23000]:完整性约束违规:1062键'PRIMARY'重复输入'7'

    修复:我从pdo_mysql.log文件中发现问题出在sales_flat_order表中,这意味着主键有很多重复的条目,所以我截断了所有的销售表.这实际上是我旧DB中的错误.在新版本中,increment_id是UNIQUE.我们无法跳过主键检查,因此我截断了与销售相关的所有表.如果您遇到相同的问题,则截断与该功能相关的所有表,如果在客户中重复,则截断所有客户表,或者如果在目录中,则截断目录表.但请记住truncate应该在发生错误时完成,因为如果在安装开始之前被截断,安装程序将无法读取现有数据,最后您将错过一些记录,例如遗漏某些订单或发票.

    SET FOREIGN_KEY_CHECKS = 0;
    TRUNCATE `sales_flat_creditmemo`;
    TRUNCATE `sales_flat_creditmemo_comment`;
    TRUNCATE `sales_flat_creditmemo_grid`;
    TRUNCATE `sales_flat_creditmemo_item`;
    TRUNCATE `sales_flat_invoice`;
    TRUNCATE `sales_flat_invoice_comment`;
    TRUNCATE `sales_flat_invoice_grid`;
    TRUNCATE `sales_flat_invoice_item`;
    TRUNCATE `sales_flat_order`;
    TRUNCATE `sales_flat_order_address`;
    TRUNCATE `sales_flat_order_grid`;
    TRUNCATE `sales_flat_order_item`;
    TRUNCATE `sales_flat_order_payment`;
    TRUNCATE `sales_flat_order_status_history`;
    TRUNCATE `sales_flat_quote`;
    TRUNCATE `sales_flat_quote_address`;
    TRUNCATE `sales_flat_quote_address_item`;
    TRUNCATE `sales_flat_quote_item`;
    TRUNCATE `sales_flat_quote_item_option`;
    TRUNCATE `sales_flat_quote_payment`;
    TRUNCATE `sales_flat_quote_shipping_rate`;
    TRUNCATE `sales_flat_shipment`;
    TRUNCATE `sales_flat_shipment_comment`;
    TRUNCATE `sales_flat_shipment_grid`;
    TRUNCATE `sales_flat_shipment_item`;
    TRUNCATE `sales_flat_shipment_track`;
    SET FOREIGN_KEY_CHECKS = 1;
    
    Run Code Online (Sandbox Code Playgroud)
  15. 安装时间过长,因此我检查了pdo_mysql.log文件,并且一次又一次地显示以下错误.显示错误:SQLSTATE [23000]:完整性约束违规:1062密钥'UNQ_INCREMENT_ID'的重复条目''11199-1'修复:所以我删除了表中的第一个条目.

  16. Database Rapair步骤:必须使用magento-db-repair-tool-1.1(http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/db-repair-tool)使用新数据库修复新数据库.最后,报告将显示所有修复程序.

  17. 现在您只需将网站转移到实时服务器即可.