mysql - 在实时 Magento 商店上运行数据库更新?

标签 mysql database magento-1.5 locks

我最近一直在问几个问题,想知道如何更改我们 Magento 商店的产品代码。

答案是在 phpmyadmin 中运行这个命令:

UPDATE `catalog_product_entity` SET `sku` =  RIGHT(CONCAT('00000000', sku), 8)

它完美地工作,改变了我们所有的产品代码:

63
3433
432
42342343

到:

00000063
00003433
00000432
42342343

问题是;每次我运行该命令时,它都会正确更改产品代码 - 但所有产品随后都是 404'ing。然后我刷新了索引,发现它们被锁定了。我收到以下错误:

Cannot initialize the indexer process.

所以我通过 SSH 运行了以下命令:

rm -rf downloader/pearlib/cache/*
rm -rf downloader/pearlib/download/*
rm -rf var/cache/*
rm -rf var/session/*
rm -rf var/report/*
rm -rf var/tmp/*
rm -rf var/locks/*

但索引进程仍然无法运行。我现在已经完全搞砸了数据库,正在等待支持技术人员尝试解决问题。我可能会从运行 SQL 命令之前的备份中恢复数据库。

我正在尝试找出如何在不弄乱 Magento (1.5) 锁等的情况下运行此 SQL 命令,以便产品不会出现 404。

最佳答案

好吧,答案很简单。

  1. 禁用所有缓存选项
  2. 重新索引索引。
  3. 运行 SQL 命令。
  4. 重新索引索引。
  5. 刷新然后重新启用缓存

希望这对以后的其他人有帮助!

关于mysql - 在实时 Magento 商店上运行数据库更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7293305/

相关文章:

mysql - 用通配符替换字符串

mysql - SQL 查询加入建议

database - 将外键构建到遗留数据库中的技巧

php - Magento 前端直到最后才呈现

php - 在 Magento 中获取自定义类别属性的值

Magento - cms/页面集合 - 应用过滤器仅返回给定商店 ID 唯一的页面(即未分配给其他商店)

MySQL 无法识别 WHERE 中的日期时间索引

mysql - 如何在SQL中找到指定记录之后的下一条记录?

sql-server - 将 SQL Server 数据库合并为 1

c# - 模型是否包含字段而不将其添加到数据库?