0

我有一堆在 Rails 1.x 上运行的 Rails 应用程序。我需要升级 gems,所以问题是,这些旧应用程序在我升级 gems 后还能运行吗?

谢谢你。

4

4 回答 4

2

当然,唯一可以确定的方法是测试;也就是说,如果您想确保应用程序在测试时正常工作,我相信您可以运行

rake rails:freeze:gems

将当前安装的 gem 复制到项目中的 vendor 文件夹中。如果经过测试,您的项目可以使用较新的版本,请运行

rake rails:unfreeze

返回到系统安装的 gems 版本。

于 2010-01-27T13:42:24.593 回答
1

这取决于。如果您正在谈论升级到包含 Rails 的最新 gem,那么如果应用程序使用了很久以前被弃用并随后被删除的功能,那么它们就会中断。

唯一确定的方法就是尝试一下。请注意开发日志中的弃用警告。希望您拥有良好的测试套件。

于 2010-01-27T12:38:02.097 回答
0

它就像任何其他依赖项一样。查看每个 gem的版本号:

1.2.3

在这种情况下,1 是主要版本。如果这个数字发生了变化,那么绝对不要升级。使用新的需要工作。

2 是次要版本。如果仅更改此数字,您应该可以安全升级,但要小心。做很多冒烟测试。

3 是一个错误修复版本。如果仅此更改,您绝对可以升级。这么长时间后不太可能只有这个发生了变化,但如果是这样的话,你就安全了。

不幸的是,这些只是指导方针,许多开源项目并没有很好地遵循它们。因此,请谨慎对待建议。

于 2010-01-27T13:10:37.067 回答
0

如果您使用 rails 1.x 运行并升级 rails gem,您的应用程序将中断。Rails 2.x 非常不同。

至于其他宝石,它们可能会破裂。阅读发行说明,通常作者会警告向后兼容性。

如果您不想升级,也可以冻结宝石。

于 2010-01-27T15:27:45.670 回答