我跑了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
找到它。如何配置数据库并使其全部正常运行?
答案 0 :(得分:3)
如果您在本地计算机上没有psql。继续使用mysql本身。
在你的gemfile中删除 gem'pg'并提供 gem'mysql2'
给 捆绑安装 rake db:create rake db:migrate
之前在database.yml文件中提供你的mysql数据库密码。
答案 1 :(得分:1)
可能是由于几个问题:
db_test
不存在db
不存在db
有密码host
换句话说,请花些时间在database.yml
部分配置test
,然后运行rake db:test:prepare
初始化数据库。
来自rake的所有数据库可用命令:rake -T | grep db