2012-06-19 43 views
71

Tôi hiện đang cài đặt Ruby on Rails qua RVM trong Ubuntu 12.04. Cơ sở dữ liệu mặc định được thiết lập trong SQLite3, nhưng tôi muốn chuyển sang PostgreSQL với mục đích đẩy vào Heroku. Làm thế nào tôi có thể thực hiện điều này?Cài đặt PostgreSQL trên Ubuntu cho Ruby on Rails

Trả lời

163

Sau đây là các bước tôi đã theo:

Cài đặt PostgreSQL và phát triển gói

$ sudo apt-get install postgresql 
$ sudo apt-get install libpq-dev 

Thiết lập người dùng đó là giống như Ubuntu của tôi đăng nhập

$ sudo su postgres -c psql 
postgres=# CREATE ROLE <username> SUPERUSER LOGIN; 
postgres=# \q 

Sửa đổi Gemfile

# Remove gem 'sqlite3' 
gem 'pg' 

Sửa database.yml trong thư mục ứng dụng

development: 
    adapter: postgresql 
    encoding: unicode 
    database: appname_development 
    pool: 5 
    timeout: 5000 
    username: <username> 
    password: 

test: 
    adapter: postgresql 
    encoding: unicode 
    database: appname_test 
    pool: 5 
    timeout: 5000 
    username: <username> 
    password: 

Run bó cài đặt

$ bundle install 

Tạo cơ sở dữ liệu và di cư

$ rake db:create:all 
$ rake db:migrate 

Dưới đây là những nguồn tôi sử dụng để giúp:
http://mrfrosti.com/2011/11/postgresql-for-ruby-on-rails-on-ubuntu/
http://railscasts.com/episodes/342-migrating-to-postgresql
https://devcenter.heroku.com/articles/local-postgresql

+14

Nếu bạn muốn thêm một mật khẩu sử dụng lệnh này sau khi chạy 'CREATE ROLE':' ALTER ROLE WITH PASSWORD ''; 'sau đó rõ ràng thêm mật khẩu của bạn vào' database.yml' – Hengjie

+9

Hoặc, nếu bạn chỉ tạo vai trò cho lần đầu tiên thời gian và cũng muốn nhập vào mật khẩu: 'TẠO CUỘC SỐNG TUYỆT VỜI ĐĂNG NHẬP MẬT KHẨU ' '; ' – Hengjie

+0

Nếu bạn đặt người dùng giống với tên người dùng unix của bạn, điều này có an toàn ngay cả khi không có mật khẩu không? Dựa trên, ví dụ: liên kết mrfrosti.com ở trên và cũng có Postgress.app của Heroku, có vẻ như đó thường là tuyến đường được đề xuất. –

6

Đối với tất cả Ubuntu 13.10 người dùng mở chủ đề này làm theo các bước dưới đây để cài đặt postresql:

sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' > /etc/apt/sources.list.d/pgdg.list" 
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add - 
sudo apt-get update 
sudo apt-get install postgresql-common -t saucy 
sudo apt-get install postgresql-9.2 libpq-dev 

vì không có kho lưu trữ Postgres chính thức cho Ubuntu 13.10.

Sau đó tạo cho người sử dụng như Nick giải thích (bạn có thể chỉ định một mật khẩu quá):

sudo su postgres -c psql 
postgres=# CREATE ROLE gotqn SUPERUSER LOGIN; 
postgres=# \password gotqn 
postgres=# \q 

Lưu ý: Thay thế gotqn trên với whoami kết quả:

enter image description here

Cách dễ nhất để tạo ứng dụng đường ray của bạn là để chỉ định bạn đang sử dụng postgresql như sau:

rails new Demo -d postgresql 

Đoạn mã trên sẽ tự động thêm pg đá quý trong GemFile của bạn và tạo thích hợp database.yml file:

development: 
    adapter: postgresql 
    encoding: unicode 
    database: Demo_development 
    pool: 5 
    username: gotqn 
    password: mypass 

Lưu ý: Bạn cần phải thay đổi tên người dùng và để xác định đúng mật khẩu nếu bạn đã thiết lập như vậy.

Sau đó chạy rake db:create và khởi động máy chủ đường ray.

Các vấn đề liên quan