PostgreSQL rake db:迁移错误

时间:2012-09-17 21:19:38

标签: ruby-on-rails postgresql rake

刚开始使用

的新应用
rails <appname> new -d postgresql

我最近安装了Postgres,这是我第一次尝试将它与应用程序一起使用。我生成了一大堆模型,然后运行rake db:migrate并得到以下错误:

rake aborted!
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"?

这是否意味着我错误地安装了Postgres?知道我应该解决什么吗?或者问题与尝试一次迁移多个模型有关?对不起,如果这是一个愚蠢的问题。我是Rails和postgres的新手。

----- MY DATABASE.YML -----

development:
  adapter: postgresql
  encoding: unicode
  database: <appname>_development
  pool: 5
  username: <appname>
  password:

  # Connect on a TCP socket. Omitted by default since the client uses a
  # domain socket that doesn't need configuration. Windows does not have
  # domain sockets, so uncomment these lines.
  #host: localhost
  #port: 5432

  # Schema search path. The server defaults to $user,public
  #schema_search_path: myapp,sharedapp,public

  # Minimum log levels, in increasing order:
  #   debug5, debug4, debug3, debug2, debug1,
  #   log, notice, warning, error, fatal, and panic
  # The server defaults to notice.
  #min_messages: warning

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: postgresql
  encoding: unicode
  database: <appname>_test
  pool: 5
  username: <appname>
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: <appname>_production
  pool: 5
  username: <appname>
  password:

---执行initdb / usr / local / var / postgres -E utf8 ---

得到以下信息:

initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "sashafklein".
This user must also own the server process.

The database cluster will be initialized with locale en_US.UTF-8.
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".

1 个答案:

答案 0 :(得分:2)

您是否创建了config / database.yml?

这基本上保存了Postgres的连接信息

看起来像这样

development:
  adapter: postgresql
  encoding: unicode
  database: <appname>_development
  pool: 5
  username: <username>
  password: <password>