尝试将 Rails 4.2.1 应用程序推送到 Heroku sqlite 错误

Trying to push Rails 4.2.1 app to Heroku sqlite error

所以我阅读了关于那个类似问题的帖子,但仍然感到困惑。这是我的 gem 文件。

我将 gem 文件中的所有 sqlite3 gem 更改为 gem 'pg','0.7.0' 我更改了 database.yml 文件到 postgresql.我做了一个捆绑安装,然后是 heroku 创建,然后是 git push heroku master,这在尝试安装 sqlite3 时遇到了多个问题。

运行 在开发和测试中使用 SQLite 而在生产中使用不同的数据库(如 PostgreSQL)是很常见的。 Rails 可以轻松做到这一点。

在您的 Gemfile 中,您可以使用组来指定应在每个环境中安装哪些 gem。因此,在这种情况下,您的 gemfile 将包含如下内容:

group :development, :test do
  gem 'sqlite3',     '1.3.9'
end

group :production do
  gem 'pg',             '0.17.1'
end

第一次添加生产宝石时,您应该运行:

bundle install --without production

更新您的gemfile.lock

同样,在database.yml中,您应该为开发和测试定义sqlite,为生产定义postgresql。这是一个例子:

default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

test:
  <<: *default
  database: db/test.sqlite3

production:
  database: signup
  adapter: postgresql
  pool: 5
  timeout: 5000
  username: xxxx
  password: yyyy

最后,确保在尝试部署到 Heroku 之前将 gemfile 更改提交到生产环境。