一尘不染

Magento升级时间太长,无法完成

php

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


阅读 247

收藏
2020-05-29

共1个答案

一尘不染

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

protected $_debug               = true;
protected $_logAllQueries       = true;
protected $_debugFile           = 'var/debug/pdo_mysql.log';

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

错误是。

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ''11199-1' for key 'UNQ_INCREMENT_ID'

因此,我删除了数据库表和 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 \ etc \ modules(复制不在新版本中的文件)。

  1. 在MySql查询日志中,通过更改 lib \ Varien \ Db \ Adapter \ Pdo \ Mysql.php中* 的以下行 *

     protected $_debug               = true;
    

    protected $_logAllQueries = true;
    protected $_debugFile = ‘var/debug/pdo_mysql.log’;

  2. 搜索并更改 CREATE TABLE 以 在 不存在的情况创建CREATE TABLE 在code / core / mage /中。

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

      • web/unsecure/base_url | http://localhost/magento171/
    

    • web/secure/base_url | http://localhost/magento171/

  4. /errors/local.xml.sample 重命名为 /errors/local.xml 以启用error_reporting。

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

  6. 转到浏览器并输入您的项目路径。 http:// localhost / magento171 / 并密切注意浏览器和 var / debug / pdo_mysql.log 文件。

  7. 我遇到的第一个错误是:文件错误:“ 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
表中,这意味着存在许多主键重复项,因此我截断了所有sales表。这实际上是我的旧数据库中的错误。在新版本中,increment_id为UNIQUE。我们不能跳过主键检查,因此我删去了与销售有关的所有表。如果您有相同的问题,则截断与该功能相关的所有表,例如如果客户重复,则截断所有客户表,或者如果目录中则截断目录表。但是请记住,在发生错误时应进行截断,因为如果在安装开始之前就被截断了,安装程序将不会读取现有数据,最后您将丢失一些记录,例如缺少某些订单或发票。

    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;
  1. 安装时间太长,因此我检查了 pdo_mysql.log 文件,并一次又一次显示以下错误。显示的错误:SQLSTATE [23000]:违反完整性约束:1062键“ UNQ_INCREMENT_ID”的条目“ 11199-1”重复。修复:所以我删除了表中的第一个条目。

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

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

2020-05-29