gpt4 book ai didi

magento - 使用直接包文件上传更新 magento 扩展 - 文件已存在

转载 作者:行者123 更新时间:2023-12-02 02:07:37 25 4
gpt4 key购买 nike

我创建了一个模块,导出了扩展,之后我使用直接包文件上传安装了它(在新商店上)。该扩展按预期工作。

现在,我做了一些更新,使用另一个发布版本号导出了扩展,但是当我尝试上传存档(以相同的模式)时,我收到错误(“连接错误:包文件无效 [..] './app/code/local/Smart2Pay/Globalpay/Block/Form/Pay.php' 已存在”)

我读到我可以更改一些 downloader\lib\Mage\Connect\Validator.php 文件( here )以允许文件覆盖,但我想知道是否有任何其他最佳实践相关的解决方案。我需要此扩展更新才能适用于所有 magento 用户。

最佳答案

正如 Tim 所说,安装较新版本的 Magento 扩展包的正确方法是首先运行 MagentoConnect Manager 中的卸载选项来删除旧扩展,然后运行安装选项以从较新的软件包文件进行安装。

不幸的是,这是 MagentoConnect 包管理器功能的(糟糕的)设计。

还值得解释一下扩展/包所做的任何数据库修改会发生什么。 Magento 模块无法指定卸载脚本或指令。这意味着在卸载原始模块/包后,任何数据库更改仍然存在并且没有被删除。当重新安装模块的较新版本时,这应该会触发模块的数据库升级脚本运行,而不是“安装脚本”。

所以发生的情况的详细情况如下:

  1. 当模块最初是从包安装时,会运行与 config.xml 中的模块版本相对应的模块的最新安装脚本,从而进行任何必要的数据库更改。

  2. 当模块从 MagentoConnect 管理器中卸载时,数据库将保持原样,因此模块所做的所有更改仍然存在于数据库中。

  3. 安装较新版本的模块时,Magento 数据库 core_resource 表会告诉安装程序先前安装了哪个版本的模块。先前版本和新版本号用于在模块代码中查找适用的数据库升级脚本。如果找到适当的升级脚本,则会运行该脚本。

关于magento - 使用直接包文件上传更新 magento 扩展 - 文件已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13462130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com