Problems with Postgresql Rails



我在运行时遇到问题:

rake db:create:all

我目前有:

$ psql --version
psql (PostgreSQL) 9.3.0
$ which psql
/Applications/Postgres.app/Contents/MacOS/bin/psql

并获得:

$ rake db:create:all
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"?
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:1222:in `initialize'
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:1222:in `new'
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:1222:in `connect'
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:324:in `initialize'
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in `new_connection'
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:325:in `checkout_new_connection'
.....
.....

尝试卸载并重新安装pg gem,但仍然无法正常工作。

首先尝试遵循Ryan Bates截屏视频,但遇到了一些问题,然后检查了Heroku Postgres建议设置此路径:

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

可能是

rake 试图连接到/var/pgsql_socket/.s.PGSQL.5432但域套接字实际上在其他地方。 我的在/tmp/.s.PGSQL.5432. 您可以尝试这些:

在数据库.yml 中指定host: localhost。 例如:

development:
  host: localhost
  # other stuff

创建一个符号链接,/var/pgsql_socket/.s.PGSQL.5432实际居住的位置。

mkdir /var/pgsql_socket
ln -s /tmp/.s.PGSQL.5432 /var/pgsql_socket/.s.PGSQL.5432

您可能还必须对链接进行修改。 我不确定您是否也必须链接.s.PGSQL.5432.lock。

第一个选项要容易得多。 不确定其中一个是否更好。

最新更新