我已经阅读了很多相关问题,但我的问题介于已经涵盖的问题之间,所以:
我正在修改仅通过Magento Connect提供的模块。在设置过程中,模块会向客户添加属性。
我需要为客户添加另一个属性。
我已经修改了代码,但我无法弄清楚如何“重新安装”或“重新安装”模块。显然,我不能使用Magento Connect,因为它只提供未经修改的代码。
我尝试了什么:
我完全清除了Magento Cache,没有运气。
最接近(我认为?)我来的是删除core_resource
表中模块的“已成功安装”条目。这似乎重新开始安装,但后来遇到了一个独特的约束问题......可能是因为我不知道初始安装期间模块创建的所有表。
问题:
如果模块添加了客户属性,那么所有要修改的表都是什么?
是否有另一种/更好的方法来简单地刷新修改数据库的模块的安装?
谢谢!
答案 0 :(得分:1)
如果您之前已安装该模块,则需要从“core_resource”表中删除其条目。
此外,如果模块的sql设置不包含drop(表/属性)代码,则需要手动删除所有主要创建的表和/或属性。
现在登录http://magentocommerce.com/magento-connect/
并复制该扩展程序的密钥。
现在转到http://freegento.com/ddl-magento-extension.php
并在文本区域粘贴密钥,然后单击“提交查询”按钮直接下载该模块。
下载后,您可以将文件夹和文件放在各自的位置。
注意:放置所有文件和文件夹后放置模块的xml文件(app / etc / modules / [packagename_modulename] .xml)。
就是这样。
答案 1 :(得分:0)
我会在config.xml中将版本号从1.0.0升级到1.0.1。 然后创建升级脚本,例如在模块的sql文件夹中升级1.0.0-1.0.1.php。
但不要忘记你会失去模块的可更新性,所以最好只在自定义脚本中添加customer属性。
你遇到了一个约束问题,因为它试图再次运行整个脚本,但是还导入了sql。
喝彩!
答案 2 :(得分:0)
查看表格:
core_resource
每个模块都有自己的条目,一旦安装,安装脚本将不会再次运行。
您将看到相关模块的条目,删除该行。如果您不确定要查找的行,可以从模块config.xml中找到值
这将导致重新安装模块,并重新执行SQL安装脚本。
您需要小心并检查安装脚本等,如果在数据库上重新运行它们将不会做任何坏事。使用一个明智的模块,这将只重建数据库等,没有问题,但备份以防万一。
另一种方法是使用更新脚本并更新模块版本号来执行上面指定的操作。