在Postgres的database.yml中自动设置用户名

时间:2014-03-19 20:44:19

标签: ruby-on-rails postgresql

当您使用postgres生成一个新的rails应用程序作为db时,它会自动将用户名设置为 database.yml 中的appname。

然后您必须手动将其更改为您的用户名,否则该应用将无法运行。

有没有办法自动将其设置为登录用户(运行rails new时)或其他预设用户名?

在开发和测试环境中,它始终是相同的用户名,并且生产无关紧要,因为它始终部署在heroku上。

我在ubuntu上,但也很高兴听到mac用户的解决方案。

2 个答案:

答案 0 :(得分:0)

为每个应用程序创建一个新用户是一个好习惯。要执行此操作,请首先创建adminpack扩展名,如下所示:

$ psql postgres -c 'CREATE EXTENSION "adminpack”;'

打开数据库提示以创建新用户。让我们说你的应用程序名为blog:

$ psql -d postgres
postgres=# create role blog login createdb ;
postgres=# \q

现在创建您的数据库并将其与您刚刚创建的用户相关联:

$ createdb -E UTF8 -w -O blog blog_development

检查其创建的内容:

$ psql -l

答案 1 :(得分:0)

好的,我最终这样做了: 在我的模板中,我添加了这一行来替换用户名: gsub_file "config/database.yml", /username: .*/, "username: myusername" 我在开发机器上有一个简单的单独开发人员工作流程,因此开发和测试的用户名将始终相同,并且生产无关紧要,因为它部署到heroku。