1

我看过这里这里,但仍然无法解决我的问题。我的设置在我的普通 linux 上运行良好,但是当我尝试在我的 mac 上重新创建它时,postgres 无法与 rails 一起使用。遵循railscasts 的这些说明后,我开始运行 rake:db:create:all

运行 rake db:create:all:

$ rake db:create:all                                                                 -- 
could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

但运行 psql 工作正常:

$ psql
psql (9.3.1)
Type "help" for help.

crashandburn4=#

检查哪个端口 postgres 在产量上运行:

$ cat /etc/services |grep post
postgresql      5432/udp    # PostgreSQL Database
postgresql      5432/tcp    # PostgreSQL Database

所以它似乎不是一个不正确的端口,我的 database.yml 明确指出了端口:

# database.yml
development:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  username: myusername
  password:
  port: 5432

test:
  adapter: postgresql
  encoding: unicode
  database: blog_test
  pool: 5
  username: myusername
  password:
  port: 5432


production:
  adapter: postgresql
  encoding: unicode
  database: blog_production
  pool: 5
  username: myusername
  password:
  port: 5432

运行 netstat 看起来也不错(我认为):

$ netstat -a | grep postgre
tcp6       0      0  localhost.postgres     *.*                    LISTEN     
tcp4       0      0  localhost.postgresql   *.*                    LISTEN     
tcp6       0      0  localhost.postgres     *.*                    LISTEN     

除了打电话给巫医之外,这就是我能想出的所有方法来尝试诊断问题:) 有人有什么想法吗?

编辑:解决了我的问题(很好的旧橡皮鸭调试)我想无论如何我都会发布以帮助任何其他花费一个小时挖掘并仔细检查配置文件的可怜的灵魂。

4

1 回答 1

1

配置不正确,这是通过在配置中包含主机名来解决的(见下文),一个有趣的注意事项是,这仅对我正在运行的 macbook pro 是必需的,并且不会出现在我使用的 Linux 机器上。

development:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  username: myusername
  password:
  host: localhost
  port: 5432

test:
  adapter: postgresql
  encoding: unicode
  database: blog_test
  pool: 5
  username: myusername
  password:
  host: localhost
  port: 5432


production:
  adapter: postgresql
  encoding: unicode
  database: blog_production
  pool: 5
  username: myusername
  password:
  host: localhost
  port: 5432
于 2013-11-08T13:24:10.047 回答