2013-03-06 38 views
0

我想部署一個新的Rails應用程序到一個Bitnami/Ubuntu /虛擬服務器。我很遠,使用SSH終端。把Rails應用程序投入生產 - 耙分貝:架構:加載不工作

我已成功地使用Capistrano來部署:更新。我的來源是github,然後Capistrano將它放在服務器上。

所以,我在服務器上這個目錄:

/opt/bitnami/projects/ndeavor/releases/20130306180756 

服務器還具有運行PostgreSQL的堆棧。我創建了我的Postgresql用戶和空數據庫。我相信我的下一步是使用SSH控制檯運行此命令:

[email protected]:/opt/bitnami/projects/ndeavor/releases/20130306180756$ rake RAILS_ENV=production db:schema:load 

問題1 =這是正確的下一步嗎?

當我運行該命令,我得到這個:

could not connect to server: No such file or directory 
Is the server running locally and accepting 
connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 

問題2 =我怎樣才能得到佣金找到PostgreSQL的插座?

我可以把這樣的事情在database.yml文件:

socket: /var/pgsql_socket 

但是,我不知道什麼是正確的條目應

感謝您的幫助!

UPDATE1

我也試過有database.yml文件是這樣的:

production: 
adapter: postgresql 
encoding: unicode 
database: ndeavor_production 
pool: 5 
username: (user name) 
password: (password) 
socket: /var/run/postgresql 

但是,我得到了同樣的錯誤:

Is the server running locally and accepting 
connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 

爲什麼,至少是不是問我的Unix域套接字「/ var/run/postgresql」?

UPDATE2

我發現這一點:

「我已經解決了在postgresql.conf文件聲明unix_socket_directory我的問題是在/ var /運行/ PostgreSQL的它似乎對他們應該一個標準的版本。有一個共同的位置?

如果從未修改PG人士打造,默認插槽的位置是 確實/ tmp中。然而,Debian和相關發行版覺得這 違反了一些發行標準或其他,所以他們修改源代碼 t o創建默認位置/ var/run/postgresql。所以,這取決於其 構建你使用。」

但是,我不知道我是否應該改變postgresql.conf文件或Rails的database.yml文件

UPDATE3

我查看了/ var/run/postgresql目錄,它是空的。

我找不到.s。PGSQL.5432位於

+0

PostgreSQL是否正常工作?你可以使用命令行連接它嗎? – 2013-03-06 19:00:47

+0

是的,我可以通過SSH進行連接,並且我已經設置好,以便我可以通過pgAdmin3遠程連接 – Reddirt 2013-03-06 19:11:56

+1

嘗試在'''database.yml中指定''''''''''''''''和'''port'''選項''' – Bob 2013-03-06 19:17:57

回答

0

正如Bob指出的那樣,指定主機和端口可以解決問題。由於他沒有更詳細地解釋這一點,我想指出。

默認端口是5432,默認的「主機」是它期望套接字的路徑。端口始終爲數字,但主機可以設置爲任何libpq連接或者到網絡主機或包含套接字的目錄。例如,使用psql連接

psql -h /tmp -p 5432 -U chris mydb 

這將通過/tmp/.s.PGSQL.5432套接字進行連接。現在Ruby有些不同,但pg gem使用libpq,因此它應該表現相同。

如果您不知道套接字的位置,接下來要做的事情就是網絡地址,特別是localhost。

相關問題