我刚刚在这台机器上安装了rbenv,ruby 2.2.3和rails 4.2.4。我已经启动了我的rails应用程序而没有更改任何代码,只是使用rails new .
生成的默认文档,然后我使用rails server
启动了服务器。
点击http://localhost:3000
时,我收到以下错误:
"指定' postgresql'对于数据库适配器,但未加载gem。将gem 'pg'
添加到您的Gemfile中(并确保其版本达到ActiveRecord所需的最低值)。"
我已经从之前的Node项目中安装了postgres,但我的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
我现在不想使用Postgres,我刚刚开始,我宁愿用SQLite3来保持简单。有没有人知道可能会发生什么以及我可以做些什么来使用SQLite3来获取它以便此错误停止?
答案 0 :(得分:3)
还有另一种解决方案,对于那些实际需要保留DATABASE_URL
环境变量而不影响Rails的人(比如我)。您可以使用url
子键:
development:
<<: *default
url: sqlite3:db/development.sqlite3
记录在案here。
答案 1 :(得分:2)
问题在于,当你启动服务器时,它正在寻找可能设置为postgres的环境变量DATABASE_URL,这优先于database.yml文件。您可以删除环境变量,它应该可以使用,或者您可以将其重置为SQLite。
答案 2 :(得分:2)
这是一个古老的帖子,但也许有人会觉得这很有用。
在我的情况下,我在〜/ .bash_profile中导出了DATABASE_URL变量,如此
# Postgres installation
export DATABASE_URL=postgres:///$(whoami)
在Linux上,它可能位于~/.bashrc
文件中。
如果您不再使用Postgres,请删除或注释掉导出行,或者如果您使用AlienBishop的解决方案。
正如IliaAptsiauri所提到的,没有DATABASE_URL变量应用程序应该使用database.yml文件中的设置。