You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Ruby on Rails应用到Heroku时遇应用崩溃错误求助

解决Ruby on Rails部署Heroku的应用错误及SQLite3加载问题

嘿,这俩问题都是Rails部署Heroku时的典型坑,我来帮你一步步搞定:

一、先解决核心的Gem::LoadError(SQLite3适配问题)

Heroku完全不支持SQLite3作为生产环境数据库——因为它是本地文件型数据库,Heroku的dyno(运行实例)重启后所有本地文件都会被清空,数据直接丢了。必须换成PostgreSQL才行,调整Gemfile的配置:

  1. 修改你的Gemfile,把sqlite3限定在开发/测试环境,生产环境用pg:
group :development, :test do
  gem 'sqlite3', '~> 1.4'
end

group :production do
  gem 'pg', '~> 1.1'
end
  1. 重新安装依赖(跳过生产环境的gem,因为本地不需要pg):
bundle install --without production
  1. 提交修改到Git:
git add Gemfile Gemfile.lock
git commit -m "Restrict sqlite3 to dev/test, use PostgreSQL for production"
  1. 重新推送到Heroku:
git push heroku main

这一步应该能直接解决Gem::LoadError,现在生产环境会加载pg而不是sqlite3了。

二、消除Ruby版本警告

你已经加了ruby '2.3.4'但警告还在,大概率是Gemfile.lock里的版本和你声明的不一致,或者Heroku没正确识别:

  1. 先确保本地确实装了Ruby 2.3.4(用rbenv/rvm这类版本管理工具切换过去),然后重新生成Gemfile.lock:
bundle install
  1. 提交更新后的Gemfile.lock:
git add Gemfile.lock
git commit -m "Sync Gemfile.lock with Ruby 2.3.4"
git push heroku main
  1. 如果还是有警告,直接给Heroku指定Ruby版本:
heroku config:set RUBY_VERSION=2.3.4

三、验证修复

部署完重启进程,再看日志确认:

heroku ps:restart
heroku logs --tail

如果日志里没有Gem::LoadError,且应用能正常打开,就搞定了。

最后提个醒:Ruby 2.3.4已经停止维护好几年了,有不少安全漏洞,后续建议升级到3.2.x这类稳定版本,能避免更多兼容性问题。

内容的提问来源于stack exchange,提问作者chris17

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:09:45