我在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
吗?
如何在不破坏旧安装的情况下进行转换?
答案 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
我不确定,但这是我期望的方式。