我是否需要为每个新的Rails应用程序创建一个新的Postgres用户?

时间:2015-04-14 08:49:09

标签: ruby-on-rails postgresql ruby-on-rails-4 postgresql-9.3 rails-postgresql

在我的OS X机器上,我有一个使用Postgres(9.3)的Rails应用程序(4.2)。

现在,要创建第二个Rails应用程序,我是否需要创建一个新的pg用户?

在我的第一个应用中,database.yml

中未提供用户名
development:
  adapter: postgresql
  database: my_first_app_development
  pool: 5
  timeout: 5000

1 个答案:

答案 0 :(得分:2)

简短的回答没有。如果该用户是该数据库的所有者或具有超级用户角色,则可以将一个用户用于许多数据库。

我更喜欢在本地计算机上使用一个具有超级用户权限的用户。

$> sudo -u postgres psql
postgres# CREATE ROLE my_user CREATEDB SUPERUSER;
postgres# ALTER ROLE my_user WITH LOGIN;

现在,您可以使用my_user所有者创建数据库:

postgres# CREATE DATABASE my_database WITH OWNER my_user;

或者只需使用rake task创建数据库,但在将用户名添加到database.yml之前:

database: my_first_app_development
username: my_user
来自shell的

$> bundle exec rake db:create

仅适用于生产的本地开发环境,创建具有正确权限的单独用户。