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

时间:2015-06-19 00:32:09

标签: ruby-on-rails heroku gem

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

我将gemfile中的所有sqlite3宝石更改为gem' pg',' 0.7.0'我将database.yml文件中的所有sqlite3更改为postgresql。我做了一个bundle install,然后heroku创建,然后git push heroku master,这有很多问题,试图安装sqlite3。

1 个答案:

答案 0 :(得分:0)

在开发和测试中运行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更改提交到生产。