0

我已经阅读了很多相关的问题,但我的问题介于已经涵盖的内容之间,所以:

我正在修改一个只能通过 Magento Connect 获得的模块。在设置过程中,模块会向客户添加一个属性。

我需要向客户添加另一个属性。

我已经修改了代码来这样做,但我不知道如何“重新刷新”或“重新安装”模块。显然,我不能使用 Magento Connect,因为它只提供未修改的代码。

我试过的:

  1. 我已经完全清除了 Magento 缓存,没有运气。

  2. 我最接近的(我认为?)是通过删除表中模块的“成功安装”条目core_resource。这似乎重新开始安装,但随后遇到了一个独特的约束问题......可能是因为我不知道在初始安装期间模块创建的所有表。

问题:

  1. 如果一个模块添加了一个客户属性,那么所有被修改的表是什么?

  2. 是否有另一种/更好的方法来简单地刷新修改数据库的模块的安装?

谢谢!

4

3 回答 3

1

如果您之前安装了该模块,则需要从“core_resource”表中删除其条目。

此外,如果模块的 sql 设置不包含删除(表/属性)代码,您需要手动删除之前创建的所有表和/或属性。

现在登录http://magentocommerce.com/magento-connect/

并复制该扩展名的密钥。

现在去http://freegento.com/ddl-magento-extension.php

并将密钥粘贴到文本区域并单击“提交查询”按钮直接下载该模块。

下载后,您可以将文件夹和文件放置到各自的位置。

注意:在放置所有文件和文件夹后,放置模块的 xml 文件 (app/etc/modules/[packagename_modulename].xml)。

就这样。

于 2013-06-10T17:17:21.760 回答
0

我会在 config.xml 中将版本号从 1.0.0 提高到 1.0.1。然后在模块的 sql 文件夹中创建一个升级脚本,例如 upgrade-1.0.0-1.0.1.php。

但不要忘记您将失去模块的可更新性,因此最好在自定义脚本中添加客户属性。

你遇到了一个约束问题,因为它试图再次运行整个脚本,但 sql 尚未导入。

干杯!

于 2013-06-10T15:53:49.490 回答
0

看表:

core_resource

每个模块都有自己的条目,一旦安装,安装脚本将不会再次运行。

您将看到相关模块的条目,删除该行。如果您不确定要查找的行,您可以从模块 config.xml 中找到值

这将导致重新安装模块,并重新执行 SQL 安装脚本。

您需要小心并检查安装脚本等如果在数据库上重新运行它们不会做任何坏事。使用合理制作的模块,这只会重建数据库等,不会有任何问题,但备份以防万一。

另一种方法是执行上面指定的操作,使用更新脚本并更新模块版本号。

于 2013-06-10T15:57:44.890 回答