我在查询日志中通过更改 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的步骤。对于其他项目,显示的这些错误将有所不同,因为每个项目都有不同的数据。
为新版本创建一个 新的数据库 。(我正在使用 SQLyog, 因为它对于大型数据库的导入和导出非常有用)。
在 www 或 htdocs中解 压缩并安装新版本1.7.0.1 。我的项目名称是 magento171 。
创建 新的数据库 ,因为我们将需要 新鲜的分贝 在 修复步骤 。
将 旧数据库 数据导入到 新数据库中 。
在新安装的magento版本中的 etc / local.xml* 中更改 新的数据库 名称。 *
在 etc / local.xml中 找到 SET NAMES utf8 并将其更改为 SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; SET UNIQUE_CHECKS = 0; 。
在新版本的magento中复制旧项目文件。我的主题在空白文件夹中。如果默认文件夹中有模板文件,则复制默认值。
•应用程序设计前端默认空白
•应用代码本地
•皮肤前端默认/空白
•app etc modules(复制不在新版本中的文件)。
在MySql查询日志中,通过更改 lib Varien Db Adapter Pdo Mysql.php中* 的以下行 *
protected $_debug = true;
protected $_logAllQueries = true;
protected $_debugFile= ‘var/debug/pdo_mysql.log’;搜索并更改 CREATE TABLE 以 在 不存在的情况 下 创建CREATE TABLE 在pre / core / mage /中。
在表 core_config_data中 更改以下条目(使用您的项目文件夹名称)。
• web/unsecure/base_url | http://localhost/magento171/
• web/secure/base_url | http://localhost/magento171/
将 /errors/local.xml.sample 重命名为 /errors/local.xml 以启用error_reporting。
通过删除 var cache中的 所有数据来清除magento 缓存 。
转到浏览器并输入您的项目路径。 http:// localhost / magento171 / 并密切注意浏览器和 var / debug / pdo_mysql.log 文件。
我遇到的第一个错误是:文件错误:“ D: xampp htdocs magento171 app pre 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;
安装时间太长,因此我检查了 pdo_mysql.log 文件,并一次又一次显示以下错误。显示的错误:SQLSTATE [23000]:违反完整性约束:1062键“ UNQ_INCREMENT_ID”的条目“ 11199-1”重复。修复:所以我删除了表中的第一个条目。
数据库 修复 步骤: 必须使用 magento-db-repair-tool-1.1 (http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/db-repair-tool)使用新数据库修复新数据库。最后,报告将显示所有修复程序。
现在,您只需将网站转移到实时服务器即可。



