【问题标题】:Sqlite3 trouble when I push on Heroku当我推 Heroku 时出现 Sqlite3 问题
【发布时间】:2018-08-18 00:02:54
【问题描述】:

我在将我的 rails 应用程序推送到 heroku 时遇到了一些麻烦。

我有错误

无法通过 Bundler 安装 gem。 偏僻的: !检测到 Heroku 不支持的 sqlite3 gem: 偏僻的: ! https://devcenter.heroku.com/articles/sqlite3

所以我确实按照链接上的说明进行操作,但是,我仍然遇到同样的错误。我试图看看其他类似的主题,但仍然没有工作..

有什么想法吗?

更新 这是我的 gemfile 的样子:

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '~> 2.13'
  gem 'selenium-webdriver'
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end

【问题讨论】:

    标签: ruby-on-rails ruby postgresql heroku sqlite


    【解决方案1】:

    在您的单元测试和开发环境中使用 sqlite3 很好,但在生产环境中您可能希望使用 PostgreSQL 之类的东西。

    这是您的 Gemfile 的样子:

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

    此外,如果您正在编写单元测试,您应该将您的 sqlite3 数据库 URL 设置为 sqlite::memory: 以进行单元测试,而不是您的实际数据库。

    【讨论】:

    • 对不起,我真的不明白我该怎么办......我要更新我的问题。
    • 在运行 bundle install 时,您希望添加 --production 标签。 bundle install --production。还要确保 sqlite3 不在您的 Gemfile.lock 中。
    【解决方案2】:

    虽然易于使用,但 SQLite 并不打算用作生产级数据库。相反,Heroku 将生产级 PostgreSQL 数据库作为服务提供。

    不要在 heroku 上使用 sqlite - 确保在全局范围内没有 sqlite3 gem 或 Gemfile 的 :production 组。

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 2018-02-23
      • 2012-09-06
      • 2011-12-13
      • 1970-01-01
      • 2023-03-10
      • 2011-03-29
      • 2018-11-20
      • 1970-01-01
      相关资源
      最近更新 更多