用途:系统化指导 Rails 应用升级,覆盖 5.2 到最新版本,包括升级就绪评估、多跳升级路径规划与破坏性变更排查。
主要能力:从 railsdiff.org 的 GitHub 数据源获取实时配置差异;用 Grep、Glob、Read 做代码级检测;核对 Ruby 版本兼容性;检查 load_defaults 状态;检查 gem 兼容性;生成结构化升级报告;支持 next_rails 双启动方案。
使用方式:按工作流执行。先做版本评估,读取 Gemfile、Gemfile.lock、config/application.rb 与 .ruby-version,并把目标解析到目标系列的最新补丁版本。随后依次执行测试基线验证(bundle exec rspec 或 bundle exec rails test)、配置差异获取、代码检测、load_defaults 验证、生成报告,最后在用户明确批准后执行升级:git checkout -b rails-{TARGET}-upgrade、更新 Gemfile、bundle update rails、应用配置变更、运行 bin/rails app:update、更新 load_defaults 并再次跑测试。跨多个次版本时按顺序逐跳执行,每跳测试通过后再进入下一跳。
适用场景:Rails 版本升级、升级就绪评估、多跳升级规划、破坏性变更与弃用警告排查。
限制:Rails 8.2 尚未发布,不应把生产应用升级到它;8.2 相关内容仅用于在 8.1 上提前清理弃用项,且需对 main 重新核实。Active Storage 使用 vips 变体处理器且接受不可信上传的应用存在安全门槛,需先检查 libvips 版本与 ruby-vips 版本,并注意 BMP、ICO、PSD 变体生成会报错。若曾运行受影响版本并暴露于不可信上传,需轮换 secret_key_base、主密钥及可达凭据。测试基线未通过时必须停止。资料未提供具体收费与价格信息。