升级gem是否会打破旧的Rails应用程序?

我在Rails 1.x上运行了大量的Rails应用程序。 我需要升级gem所以问题是,升级gem后这些旧应用程序是否仍然有用?

谢谢。

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

rake rails:freeze:gems 

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

 rake rails:unfreeze 

返回系统安装的gem版本。

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

唯一可以确定的方法是尝试一下。 请注意开发日志中的弃用警告。 希望你有合适的测试套件。

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

1.2.3

在这种情况下,1是主要版本。 如果这个号码已经改变,那么绝对不要升级。 它需要工作才能使用新的。

2是次要版本。 如果只有这个数字发生了变化,你应该安全升级,但要小心。 做了很多烟雾测试。

3是错误修复版本。 如果只是改变了,你绝对可以升级。 经过这么长时间后,这种情况不太可能发生变化,但如果是这样的话,你就是安全的。

不幸的是,这些只是指导方针,许多开源项目都没有很好地遵循它们。 所以请一窍一意。

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

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

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