Rake测试失败 - RunTimeError

时间:2013-04-17 08:37:32

标签: ruby-on-rails ruby-on-rails-3 postgresql error-handling rake

我跑了rake test并收到以下错误:

/Users/username/.rvm/gems/ruby-2.0.0-p0/gems/activerecord-3.2.7/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize': could not connect to server: Permission denied (PG::Error)
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
.
.
. (many filenames)
.
.
Errors running test:units! #<PG::Error: could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
>
Errors running test:functionals! #<RuntimeError: Command failed with status (1): [/Users/username/.rvm/rubies/ruby-2.0.0-p0/bin/...]>

这是什么意思?我该怎么做才能解决这个问题? 此外,它似乎与PostgresSql有关,但我不相信我使用的数据库。 (在哪里可以检查?)所以它没有意义......

更新:我错了,有postgresql。 这是我的config/database.yml文件:

test:
   adapter: postgresql
   encoding: unicode
   database: db_test
   pool: 5
   username: db
   password: 

production:
  adapter: postgresql
  encoding: unicode
  database: db_production
  host: xx.xxx.xxx.xxx
  pool: 5
  username: xxxxx
  password: xxxxxxx

以下是我的Gemfile中的数据:

#Running a Postgres Database
gem 'pg'

#And using redis for KVS
gem 'redis'

#Behind a Thin Server
gem 'thin'

我现在在我的本地机器上工作,这是我拉的项目。也许我的本地机器有一定的数据库(我相信我使用的是mysql),但是应用程序还在期待另一个?

更新: 我的本地机器(Mac OS)确实有postgresql,我能够使用which psql找到它。如何配置数据库并使其全部正常运行?

2 个答案:

答案 0 :(得分:3)

如果您在本地计算机上没有psql。继续使用mysql本身。

在你的gemfile中删除 gem'pg'并提供 gem'mysql2'

给 捆绑安装 rake db:create rake db:migrate

之前

在database.yml文件中提供你的mysql数据库密码。

答案 1 :(得分:1)

可能是由于几个问题:

  • dabatase db_test不存在
  • 用户db不存在
  • 用户db有密码
  • 必须指定host

换句话说,请花些时间在database.yml部分配置test,然后运行rake db:test:prepare初始化数据库。

来自rake的所有数据库可用命令:rake -T | grep db