2012-10-09 63 views
0

我是Ruby/Rails和PostgreSQL的新手。是否有可能需要多個rails應用程序才能訪問psql本地數據庫?如果不是,您如何在應用程序之間切換? 目前RailsApp1正在與我的psql數據庫按預期進行交互,但是RailsApp2無法連接並取消命令。如何讓多軌應用程序訪問本地postgreSQL數據庫

運行於:OSX Mountain Lion, ruby 1.9.3p194, rails 3.2.8, psql 9.2.1.

~/RailsApp2 #: rake db:migrate 
rake aborted! 
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"? 

Tasks: TOP => db:migrate 
(See full trace by running task with --trace) 

預先感謝您的幫助。

回答

0

PostgreSQL使用客戶端 - 服務器模型,所以事實是您只需連接到服務器,並且多個應用程序可以使其工作。您的具體問題聽起來像服務器沒有運行或不接受連接。按順序嘗試的步驟:

  1. ps -A | grep post正在尋找postgres或postmaster進程。如果找不到,請使用pg_ctl程序啓動服務器。
  2. 假設它正在運行,嘗試將PGHOST環境變量設置爲「localhost」,以便強制rake,psql等通過TCP/IP進行連接。如果UNIX套接字丟失或僅僅是客戶端應用程序所期望的位置,這將有所幫助。
  3. 如果這兩個失敗,找到您的postgresql日誌(有時稱爲serverlog,有時在pg_log目錄中)併發布錯誤消息。
+0

我能夠通過設置本地主機環境變量來糾正我的問題。 謝謝你的幫助。 – Cypher

+0

在這種情況下,您的套接字不在libpq期望的位置。如果您決定不想使用TCP/IP連接,則可以將PGHOST設置爲該目錄(如果它以/它爲套接字文件的目錄開頭)。 –

相關問題