【问题标题】:Detected sqlite3 gem which is not supported on Heroku检测到 Heroku 不支持的 sqlite3 gem
【发布时间】:2014-01-23 00:43:16
【问题描述】:

我正在尝试将我的 rails 应用程序推送到 Heroku,但我不断收到以下错误:

       An error occurred while installing sqlite3 (1.3.8), and Bundler cannot continue.
   Make sure that `gem install sqlite3 -v '1.3.8'` succeeds before bundling.
!
!     Failed to install gems via Bundler.
!     
!     Detected sqlite3 gem which is not supported on Heroku.
!     https://devcenter.heroku.com/articles/sqlite3
!

!     Push rejected, failed to compile Ruby app

这是我的 gemfile 的样子:

group :devlopment, :test do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end

关于如何解决这个问题的任何想法?非常感谢任何帮助!

【问题讨论】:

  • 强烈建议您使用与生产相同的数据库进行开发。请参阅这篇文章(注意底部还有关于 sqlite 错误的注释,即使它不在 gemfile 中):devcenter.heroku.com/articles/sqlite3
  • 尝试向您的 Rails 项目询问 production 模式的依赖项列表。看看你使用的其他 gem 是否可能间接使用 SQLite。
  • 错字,development,不是devlopment

标签: ruby-on-rails heroku


【解决方案1】:

我已将 gem 文件修改为仅在开发和测试中使用 sqlite。

但是,我的错误是:我忘记在 git 上提交更改。

【讨论】:

  • 我也认为在调整 Gemfile 之后,您还必须进行捆绑安装或捆绑更新.. 或者有时,捆绑安装 --without production
【解决方案2】:

你有一个错字:

group :development, :test do # <<<< :development, not devlopment
  gem 'sqlite3'
end

由于 heroku 忽略了开发特定的 gem,因此在运行包时它包含 sqlite3 gem。

【讨论】:

  • 它确实回答了这个问题。 Heroku 捆绑 --without development。没有开发它就不会捆绑。修正此错字即可解决问题。
  • @tyler 确实这是答案,因为 heroku igonres 开发特定的宝石。我刚刚更新了答案以更清楚。
【解决方案3】:

尝试将其用于生产

group :production do
  gem 'pg', '0.15.1'
  gem 'rails_12factor'
end

更多信息可以在这里找到:https://devcenter.heroku.com/articles/sqlite3

【讨论】:

    【解决方案4】:

    对我来说,我通过在 gemfile 中将 gem 'sqlite3' 替换为 gem "pg" 来解决此问题

    当然还有heroku restartheroku rake db:migrate

    【讨论】:

      【解决方案5】:

      试试这个

      heroku rake db:reset
      heroku rake db:migrate
      

      【讨论】:

      • 请不要这样做
      猜你喜欢
      • 2014-06-07
      • 2014-03-28
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多