所以我读了关于那个类似问题的帖子,但仍然感到困惑。这是我的宝石文件。
我将gemfile中的所有sqlite3宝石更改为gem' pg',' 0.7.0'我将database.yml文件中的所有sqlite3更改为postgresql。我做了一个bundle install,然后heroku创建,然后git push heroku master,这有很多问题,试图安装sqlite3。
答案 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更改提交到生产。