0

我在 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.phpmymodule_setup目录吗?

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

4

2 回答 2

1

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

我会让安装文件保持原样并让你的升级脚本 upgrade-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

于 2013-01-10T00:49:27.530 回答
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

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

于 2013-01-10T00:07:28.947 回答