Nếu bạn gặp lỗi:
PG::Error
fe_sendauth: no password supplied
Bạn có tin tốt, ứng dụng của bạn có thể hoạt động với cơ sở dữ liệu PostgreSQL ngay bây giờ. (Nhưng bạn cần phải cấu hình một số thứ)
Sau khi cài đặt PostgreSQL, bạn có thể tạo ứng dụng rails mới bằng PostgreSQL bằng lệnh:
rails new my_app -d postgresql
Đây là database.yml
sẽ được tạo:
development:
adapter: postgresql
encoding: unicode
database: my_app_development
pool: 5
username: my_app
password:
test:
adapter: postgresql
encoding: unicode
database: my_app_test
pool: 5
username: my_app
password:
production:
adapter: postgresql
encoding: unicode
database: my_app_production
pool: 5
username: my_app
password:
Bạn thấy rằng, ba cơ sở dữ liệu có username
và password
, đây là tài khoản người dùng trong Postgresql, ba cơ sở dữ liệu trong database.yaml
tệp sẽ được tạo bởi người dùng này. Vì vậy, bạn cần cung cấp username
và password
cho nó. Mặc định sau khi cài đặt Postgresql, nó đã tạo một người dùng với tên người dùng là postgresql
và mật khẩu là postgresql
. Bạn có thể sử dụng nó.
Nếu bạn muốn sử dụng người dùng khác, chỉ cần mở pgAdmin III
và tạo người dùng mới bằng cách nhấp chuột phải vào Login Roles
và chọn New login role
để tạo người dùng mới với mật khẩu. Sau đó đặt tên người dùng và mật khẩu đó vào database.yaml
tệp.
Sau đó, tất cả những gì bạn cần bây giờ là tìm và mở pg_hba.conf
để thực hiện một số cấu hình cho ứng dụng có thể hoạt động với PostgreSQL. Tôi không sử dụng Windows trong một thời gian dài, vì vậy tôi không chắc nó ở đâu, nhưng bạn có thể tìm thấy trong thư mục bạn đã cài đặt PostgreSQL. Ví dụ, nếu bạn cài đặt trên E:\
, có thể bạn có thể tìm thấy nó trong:
E:\PostgreSQL\version\data
Sau khi bạn tìm thấy nó, hãy mở và tìm một dòng:
# "local" is for Unix domain socket connections only
local all all ident sameuser
Thay đổi nó thành:
# "local" is for Unix domain socket connections only
local all all md5
Sau đó, khởi động lại cơ sở dữ liệu Postgresql của bạn. Để tạo cơ sở dữ liệu cho ứng dụng, hãy chạy rake db:create
hoặc rake db:create:all
. Bây giờ ứng dụng của bạn có thể sử dụng cơ sở dữ liệu PostgreSQL ngay bây giờ, rất vui :).