切换到magento中的新格式的升级脚本

时间:2013-01-09 23:21:36

标签: magento

我在magentocommerce上托管的扩展程序的当前版本是v1.0.0,现在我的安装脚本名为mysql4-install-1.0.php。请注意1.0而不是1.0.0

现在我即将发布一个小错误修复v1.0.1,并且还考虑切换到新的升级脚本命名。

我应该将mysql4-install-1.0.php重命名为mymodule_setup/install-1.0.0.php,然后在upgrade-1.0.0-1.0.1.php目录下添加新的mymodule_setup吗?

如何在不破坏旧安装的情况下进行转换?

2 个答案:

答案 0 :(得分:1)

不幸的是,将文件重命名为install-1.0.0.php将再次运行该脚本。所有版本检查都通过php的version_compare()函数运行。这意味着1< 1.0< 1.0.0。

我会按原样保留安装文件并使升级脚本升级为1.0-1.0.1.php

通过保持安装文件相同,您现在拥有以下文件,并且没有重新运行文件:

mysql4-install-1.0.php
upgrade-1.0-1.0.1.php

(and in the future):
upgrade-1.0.1-1.0.2.php

如果他们正在处理当前实例,没有任何理由可以返回并重命名任何安装文件或进行调整。

当其他所有方法都失败时,请参考代码库来弄清楚发生了什么。见文件:/app/code/core/Mage/Core/Model/Resource/Setup.php

答案 1 :(得分:0)

我认为重命名文件无关紧要。如果重命名它并且商店在1.0(.0)上运行,则安装脚本不会运行,如果尚未安装,它将运行。两者都可以。

install-1.0.0和install-1.0不一样,但如果安装了扩展程序,它将不会运行第二个安装脚本; - )

如果更改旧文件的名称,则必须添加两个升级脚本:

upgrade-1.0-1.0.1.php

upgrade-1.0.0-1.0.1.php

我不确定,但这是我期望的方式。