从升级EE1.12到EE1.13
-
16-10-2019 - |
题
与新版本的Magento,很多问题已经飞来飞去的办公室。
我的一个最大的问题是第三方的整合和兼容的最新版本。
一对夫妇的事情
不会升级通常休息的第三方模块?
我们应该考虑的升级之后释放,或者我们应该等到我们第三方的模块已经被验证工作最新版本吗?
不升级的通常顺利,或者它是一个噩梦吗?
不升级的通常作用的主题?
还有什么我应考虑在升级之前?
解决方案
通常升级,从上一版本,目前应当是平滑的,或多或少。
由于1.13是EE只有很好的机会,大多数免费模块将不急于测试。因此最好的事情要做(以及你应该总是这样)是执行新试验的复制的自己的网站,查看如果它打破。
如果它打破了看看这是什么你可以修复,别的地址(模块)的支持(如果模块被打破).
其他提示
1)不会升级通常休息的第三方模块?
取决于如果他们有事可做有的索引。最大的变化EE1.13是,本索引工作与数据库触发,而不是php-文件。如果你或你的模块改变任何东西在标准索引,它几乎肯定是要失败的。否则,我看到通常的危险。
2)我们应该考虑的升级之后释放,或者我们应该等到我们第三方的模块已经被验证工作最新版本吗?
我们已经更新了非常早,因为我们需要速度的新索引在更新企业资源规划系统。如果你不需要的速度,我会等的模块。
3)没有升级的通常顺利,或者它是一个噩梦吗?
这是正常的我想说的。
4)升级的通常作用的主题?
通常没有。如果你有一个主题,是压倒一切的很多后,一些新的特征可能被隐藏。我不记得太多新的特点,该客户将会看到,虽然。
5)有其他任何东西我应考虑在升级之前?
有三个领域找到(从 http://www.code4business.de/update-magento-enterprise-edition-1-13-0-2/):
- API改变的部分的索引
- 独特产品网址的钥匙
- shell_exec的依赖在一定时任务
API改变的部分的索引
最明显的变化EE1.13是新的索引系统。我们特别重视它,因为我们正在引发的局部indexer在一定的进脚本来允许无缝的进口超过一天。但是这又令人吃惊的好,只有一点在代码,必须调整为新的索引。
之前我们用的processEntityAction()方法为触发该索引,用于单一产品,这已被替换为logEvent()及下列参数:
Mage::getSingleton('index/indexer')->logEvent( new Varien_Object(array( 'id' => $product->getId(), 'store_id' => $product->getStoreId(), 'rule' => $product->getData('rule'), 'from_date' => $product->getData('from_date'), 'to_date' => $product->getData('to_date') )), Enterprise_TargetRule_Model_Index::ENTITY_PRODUCT, Enterprise_TargetRule_Model_Index::EVENT_TYPE_REINDEX_PRODUCTS );
独特产品网址的钥匙
改变了产生最大影响是,现在有一个独特的索引网址的关键在URL重写表。这实际上还真伟CE1.8.现在,如果我们这样的你有多个存储意见和进口产品,使每个商店的看URL的关键是保存,则自动具有重复的钥匙。更新脚本是聪明不只是扔一个错误,但重新命名所有的钥匙,所以最后你就会喜欢的东西:
- de.example.com/someproduct.html
- en.example.com/someproduct1.html
- nl.example.com/someproduct2.html
为了避免这种情况,URL重写必须是固定的更新之前,以便有一个重写每种产品和网址的关键,并存意见中使用"使用默认"。我们设法与一个单一的SQL query之前的更新:
DELETE nondefault FROM catalog_product_entity_varchar AS nondefault INNER JOIN catalog_product_entity_varchar AS def ON def.value = nondefault.value AND def.entity_id = nondefault.entity_id WHERE def.attribute_id =86 AND nondefault.attribute_id =86 AND nondefault.store_id 0 AND def.store_id =0
注意,86id URL的关键属性。如果你已经没有更新,没有运行的这种查询第一你必须去除错误地创建URL键首先,这可以用下面的查询:
DELETE url_table FROM catalog_product_entity_url_key url_table INNER JOIN catalog_product_entity_varchar old_url_table ON url_table.store_id = old_url_table.store_id AND url_table.store_id 0 AND old_url_table.store_id 0 AND url_table.attribute_id = old_url_table.attribute_id AND url_table.entity_id = old_url_table.entity_id;
正如我们后来发现,更新包含两个脚本隐藏在壳的地址相同的主题:
- url_migration_to_1_13.php
- url_migration_from_1_13_0_0_to_1_13_0_2.php
shell_exec的依赖在一定时任务
另一个小棘手的事情是,cron.php 有一个新的功能允许平行的执行。它试图运行的脚本cron.sh 作为背景过程中与shell_exec()它再次运行cron.php.不幸的是检测如果shell_exec()是活动的工作不可靠的。可能的解决方案是:
确保shell_exec是不是名单上的残疾功能在你的PHP configuration
或
删除的任何空白的残疾人的功能配置价值或 改变cron.php 并手动设置$isShellDisabled到真实的