2014-04-20 90 views
0

我在設置Postresql時遇到了很多與我正在處理的項目有關的問題。設置PostgreSQL的問題和db:rake


一些信息:

- 我運行Ubuntu 12.04

-I有一個Postgres用戶帳戶安裝

- 我嘗試使用RoR中的一個項目。


我想使用這個命令:

「捆綁高管耙分貝:創建」

我試圖使用它作爲sudo的,計算機用戶,和Postgres。

當我作爲我的電腦用戶運行它時,它返回「fe_sendauth:沒有提供密碼」,然後中止耙。

知道(用戶賬號)紅寶石版本是2.1.0 因爲當我運行 「紅寶石 - 版本」,它返回

「紅寶石2.1.0p0(2013-12- 25修訂44422)[x86_64的Linux的]」

然而,當我運行 「紅寶石--version」 爲postgres的,它返回

「ruby 2.0.0p353(2013-11-22 revision 43784)[x86_64-linux]」

如何爲我的用戶帳戶和postgres分別使用ruby版本?我嘗試使用sudo來更改RVM的ruby版本,但我被拒絕了權限。

我不記得爲postgres sudo設置密碼,我無法弄清楚。

我可以做

  1. 什麼恢復/重置我的須藤Postgres的密碼。
  2. 一旦我完成了第1步,在postgres賬戶上安裝/設置最新的(2.1.0)版本的紅寶石。
  3. 運行bundle exec rake db:create all?
+0

使用RVM。安裝RVM,然後你可以在裏面安裝和管理不同版本的ruby。所以,去做吧。 –

+0

我有RVM,但爲了使用RVM,我無法訪問Postgres帳戶上的sudo,因爲某個密碼(我不知道)是爲postgres sudo設置的。 – user3172050

回答

0

嗯,不確定任何具體的問題與Linux,但它聽起來像你有它安裝好。

很難說沒有查看你的database.yml,但rails慣例似乎是用用戶名<%= your_project_name%>和一個空密碼連接到數據庫。根據錯誤,您可能沒有在postgres中創建這樣的用戶/角色。

# enter the psql shell as the postgres admin user 
psql -d postgres 
CREATE ROLE <%= your_project_name %> WITH LOGIN CREATEDB SUPERUSER; 
\q 

# create the dbs and load the schema 
bundle exec rake db:create 
bundle exec rake db:schema:load 
bundle exec rake db:migrate 
bundle exec rake db:test:prepare 

# revoke superuser, it was just there in case there were any extensions that needed installing 
psql -d postgres 
ALTER ROLE <%= your_project_name %> WITH NOSUPERUSER; 
\q 

這應該做到這一點,儘管聽起來你可能會遇到與RVM有關的問題。網站上有大量有關RVM的文檔。

您也可能將DB中用戶/角色的概念與操作系統中用戶的概念混淆。您應該可以使用任何unix用戶訪問數據庫,但是您需要使用database.yml來驗證rails到數據庫中。如上所述,似乎有大多數我看過的大多數rails項目都默認使用,但是當然你可以使用任何你想要的。

0

好吧,所以我解決了我的主要問題,我的ruby版本不正確,無法修復它,因爲我沒有驗證。

我這樣做是與

$ /斌/慶典--login

這讓我,然後鍵入

$ RVM --default使用2.1.0

這把我的紅寶石用戶postgres版本爲2.1.0。


然而,然後我試圖運行

$捆綁安裝

用戶的Postgres,我被拒絕並給予此錯誤

不幸的是,發生了致命錯誤。請參閱Bundler疑難解答文檔,網址爲 http://bit.ly/bundler-issues。謝謝!

/home/myusername/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/fileutils.rb:250:in`mkdir':Permission denied @ dir_s_mkdir -/home/myusername /。 bundler(Errno :: EACCES)

我無法爲用戶postgres訪問sudo,因爲我沒有爲它設置密碼。因此,我認爲,回答我的問題是運行

$ sudo的包安裝

,但我沒有sudo的密碼。

任何有關這個問題的幫助,將不勝感激。