我有一堆在 Rails 1.x 上运行的 Rails 应用程序。我需要升级 gems,所以问题是,这些旧应用程序在我升级 gems 后还能运行吗?
谢谢你。
我有一堆在 Rails 1.x 上运行的 Rails 应用程序。我需要升级 gems,所以问题是,这些旧应用程序在我升级 gems 后还能运行吗?
谢谢你。
当然,唯一可以确定的方法是测试;也就是说,如果您想确保应用程序在测试时正常工作,我相信您可以运行
rake rails:freeze:gems
将当前安装的 gem 复制到项目中的 vendor 文件夹中。如果经过测试,您的项目可以使用较新的版本,请运行
rake rails:unfreeze
返回到系统安装的 gems 版本。
这取决于。如果您正在谈论升级到包含 Rails 的最新 gem,那么如果应用程序使用了很久以前被弃用并随后被删除的功能,那么它们就会中断。
唯一确定的方法就是尝试一下。请注意开发日志中的弃用警告。希望您拥有良好的测试套件。
它就像任何其他依赖项一样。查看每个 gem的版本号:
1.2.3
在这种情况下,1 是主要版本。如果这个数字发生了变化,那么绝对不要升级。使用新的需要工作。
2 是次要版本。如果仅更改此数字,您应该可以安全升级,但要小心。做很多冒烟测试。
3 是一个错误修复版本。如果仅此更改,您绝对可以升级。这么长时间后不太可能只有这个发生了变化,但如果是这样的话,你就安全了。
不幸的是,这些只是指导方针,许多开源项目并没有很好地遵循它们。因此,请谨慎对待建议。
如果您使用 rails 1.x 运行并升级 rails gem,您的应用程序将中断。Rails 2.x 非常不同。
至于其他宝石,它们可能会破裂。阅读发行说明,通常作者会警告向后兼容性。
如果您不想升级,也可以冻结宝石。