我的教授说在我们的项目中使用PostgreSQL而不是SQLite是明智的,这样可以更容易地部署到Heroku,但似乎我没有正确设置database.yml。
这是我在安装Pg gem后尝试做的事情。默认的database.yml内容是:
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
development:
<<: *default
database: db/development.sqlite3
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
database: db/test.sqlite3
production:
<<: *default
database: db/production.sqlite3
我决定将默认适配器“sqlite3”更改为“postgresql”,因此:
default: &default
adapter: postgresql
pool: 5
timeout: 5000
但是当我使用脚手架时,我得到错误:
Specified 'postgresql' for database adapter but the gem is not loaded. Add 'gem pg' to your Gemfile and ensure its version is at the minimum required by active record
所以我猜我需要在gemfile中放一些像gem 'postgresql'
这样的东西。但问题是我不知道我现在拥有的PostgreSQL的当前版本,所以我可以把它放在那条线上。
我如何知道PostgreSQL的当前版本?这会解决我的项目的PostgreSQL设置吗?
答案 0 :(得分:1)
要在Ruby on Rails中使用Postgres,您应该按照以下步骤操作:
bundle install
,它将安装gem并在 Gemfile.lock 通过更改
在config/database.yml
中配置连接uri
database: db/development.sqlite3
类似
database: "postgres://username:password@hostname:port/database_name"
答案 1 :(得分:0)
在您的Gemfile中,只需将pg
gem添加到您的生产组
group :production do
gem 'pg', '~> 0.19.0'
end
然后运行bundle