使用postgresql來作為rails的資料庫

來源:互聯網
上載者:User

rails預設內建了個零配置的sqlite、這個做為開發還OK、不過不能並發寫入的特性不適合作為生產使用、從頭開始說吧

 

P.S.:以下基於ubuntu server部署postgresql

 

=============安裝postgresql並啟動===============

首先在ubuntu下安裝postgresql吧

sudo apt-get install postgresql

然後啟動postgresql伺服器

sudo /etc/init.d/postgresql-8.4 start

10.04下安裝的postgresql預設是8.4,若是10.10,則不用加版本號碼

如果想停止將start改成stop就可以了


=============配置postgresql===============

postgresql預設只有一個使用者、就是postgres、所以只能切換成這個使用者登入

 

sudo su postgres -c psql template1

然後更改postgres的密碼

 

ALTER USER postgres WITH PASSWORD 'newpassword';

再設定postgres的系統密碼

 

sudo passwd postgres

然後建立使用者資料庫、postgresql會預設為每個使用者自建一個使用者資料庫、

 

createdb    

createdb是建立資料庫的命令、後面可以加上資料庫的名稱、如果不加上任何參數、那麼就是預設與目前使用者名同名的資料庫名稱、

建立完資料庫後就用psql daname來進入postgresql控制台來進行各種操作、這部分就不再複述了、可以參看相關資料:http://www.cnblogs.com/klobohyz/archive/2012/01/04/2311834.html


================配置rails項目==========================

首先當然是產生一個rails項目、或者邇已經存在rails項目現在想更改成postgresql都可以、首先修改專案檔中的Gemfile、然後添加這麼一行

 

gem 'pg'    

再執行一次bundle install

執行完畢後就安裝好了postgresql的ruby組件了、現在開始配置一下rails項目中的config/database.yaml

 

 1 development:
2 adapter: postgresql
3 encoding: unicode
4 database: herkurails_development
5 username: root
6 password: 123qwe
7 pool: 5
8 timeout: 5000
9
10 # Warning: The database defined as "test" will be erased and
11 # re-generated from your development database when you run "rake".
12 # Do not set this db to the same as development or production.
13
14 test:
15 adapter: postgresql
16 encoding: unicode
17 database: herkurails_test
18 username: root
19 password: 123qwe
20 pool: 5
21 timeout: 5000
22
23
24 production:
25 adapter: postgresql
26 encoding: unicode
27 database: herkurails_production
28 username: root
29 pool: 5
30 password: root
31 timeout: 5000

當然了、其中的password和username要更改成邇的postgresql使用者名稱、上面的database參數就是postgresql的資料庫名稱、必須先要去postgresql那裡去建立這些資料庫先、不要指望rake會自動幫邇建立、使用設定檔中指定的使用者依次使用createdb dbname來建立上面的資料庫吧、建立完畢後、就回到rails項目中、執行rake db:migrate來更改rails對資料庫的操作吧、注意執行rake命令的目前使用者一定是要username中指定的使用者、不然會執行失敗、


P.S.:如果邇不想以預設的使用者、就要使用createuser username來添加使用者、然後為它添加密碼、

 

ALTER USER username WITH PASSWORD 'new password'

然後用這個號碼來登入ubuntu來執行以上操作、最好使用系統已經存在的帳戶、如果不是就要自己建立同名的系統帳戶

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.