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

Heroku提示‘指定sqlite3为数据库适配器但未加载对应Gem’问题求助

解决Heroku部署时SQLite3未加载的错误

这个问题我之前也踩过坑,核心原因很明确:Heroku官方不支持SQLite作为生产环境数据库——SQLite是基于本地文件的数据库,而Heroku的dyno是临时容器,每次重启都会重置文件系统,数据根本没法持久化,而且Heroku默认的生产数据库是PostgreSQL。

跟着下面的步骤一步步来就能解决:

  1. 调整Gemfile的依赖分组
    打开你的Gemfile,把sqlite3限定在development和test环境,同时给production环境添加PostgreSQL对应的pg gem:

    group :development, :test do
      gem 'sqlite3'
    end
    
    group :production do
      gem 'pg'
    end
    

    这样本地开发测试用SQLite完全没问题,部署到Heroku时只会安装适配生产环境的pg。

  2. 更新Gemfile.lock文件
    在本地终端运行这条命令,确保锁文件只包含对应环境的依赖:

    bundle install --without production
    

    这个参数会跳过生产环境的gem安装(避免本地装pg的麻烦),但会正确更新Gemfile.lock里的依赖记录。

  3. 提交修改并重新部署
    把调整后的Gemfile和Gemfile.lock提交到Git:

    git add Gemfile Gemfile.lock
    git commit -m "Switch production database to PostgreSQL for Heroku"
    

    然后重新推送到Heroku平台:

    git push heroku master
    
  4. (可选)执行数据库迁移
    如果你的项目需要初始化或更新数据库结构,记得在Heroku上运行迁移命令:

    heroku run rails db:migrate
    

做完这些操作后再重启dyno,那个sqlite3未加载的错误应该就彻底消失了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:23:45