1

我跑了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. 如何配置数据库并使其正常运行而不会出错?

4

2 回答 2

3

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

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

给 bundle install rake db:create rake db:migrate

在此之前在 database.yml 文件中提供您的 mysql 数据库密码。

于 2013-04-17T12:10:57.120 回答
1

这可能是由于几个问题:

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

换句话说,花点时间配置你的database.yml,test部分,并运行 arake db:test:prepare来初始化你的数据库。

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

于 2013-04-17T09:18:33.707 回答