5

Tôi đã theo hướng dẫn thực sự hữu ích này:Làm cách nào để tạo người dùng và cơ sở dữ liệu Postgres bất cứ khi nào tôi tạo ứng dụng đường ray mới?

http://blog.willj.net/2011/05/31/setting-up-postgresql-for-ruby-on-rails-development-on-os-x/

Tôi thực sự muốn chạy rails new myapp và có postgres db thiết lập tự động. Có cách nào tôi có thể làm điều đó bằng cách sử dụng một Rails application template hoặc một cái gì đó tương tự?

+0

Tôi cho rằng tôi có thể tạo ra một người sử dụng và cơ sở dữ liệu mà tôi sử dụng cho tất cả các ứng dụng thử nghiệm nhỏ của tôi. Tuy nhiên đối với những thứ lớn hơn tôi rõ ràng muốn cơ sở dữ liệu riêng biệt. –

Trả lời

14

Trên một hệ thống unix dựa trên:

sudo -u postgres createuser -d -R -P APPNAME 
sudo -u postgres createdb -O APPNAME APPNAME 

Bạn có thể tạo một kịch bản và đặt nó ở đâu đó trong $ PATH của bạn nếu bạn không thể nhớ.

+1

Bạn không nên cần sudo cho các lệnh đó - chỉ một tài khoản "superuser" cho cơ sở dữ liệu Postgres. –

+5

Chỉ vì mục đích hoàn thành, 'createuser -d -R -P sẽ tạo người dùng có thể tạo db (-d), không thể tạo vai trò (-R) và nhắc mật khẩu (-P)' http://www.postgresql.org/docs/9.1/static/app-createuser.html 'createdb -O sẽ tạo một db với chủ sở hữu được chỉ định (-O)' http: //www.postgresql. org/docs/9.1/static/app-createdb.html – zznq

8

Thực ra bạn không cần tạo người dùng mới mỗi khi bạn tạo ứng dụng đường ray mới.

Tất cả bạn phải làm là tạo ra các ứng dụng mới và thay đổi username trong bạn database.yml

development: 
    adapter: postgresql 
    encoding: unicode 
    database: newapp_development 
    pool: 5 
    username: #your username 
    password: 
... 

vì chỉ:

rake db:create:all 
+0

Cảm ơn vì điều đó. Tôi không nhận ra điều đó. Có anyway tôi có thể tùy chỉnh tập tin database.yml như nó được tạo ra? Tôi biết đó là hai giây để thay đổi nó nhưng tôi chỉ muốn có thể nhanh chóng thử những ý tưởng khác nhau. –

+1

Bạn có thể tạo một mẫu cơ sở dữ liệu ... Tôi chưa thử, nhưng có một [railscast] (http://railscasts.com/episodes/148-app-templates-in-rails-2-3) về nó. – gabrielhilal

+0

Truyền hình thực sự tuyệt vời. Tôi muốn tạo một tệp template.rb với ''config/database.yml', % Q {stuff for database.yml here}' Tuy nhiên, tôi cần lấy tên của ứng dụng vào tệp template.rb. Điều đó có thể không? –

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