Ruby on Rails / Postgres-如何为不存在的用户创建新数据库?

时间:2018-10-10 21:02:57

标签: ruby-on-rails ruby postgresql ubuntu

我已经克隆了一个存储库,并通过一个装有Ubuntu的虚拟机并使用RVM设置了所有内容。有关Ruby on Rails的所有内容都是通过RVM安装的。

我的问题是,我的Ubuntu登录名不同于我假设数据库想要的用户。例如,我的Ubuntu登录名是Matt,但是当我启动Rails服务器并加载到localhost:3000时,它说的是:

ActiveRecord::NoDatabaseError
FATAL: role "James" does not exist 

我知道这是一个postgres错误,但是现在我应该怎么做才能使它起作用?我已经搜索了之前的StackOverflow答案,但是这些方法不起作用。

例如。我已经改变了

local   all             postgres                                peer

local   all             postgres                                trust

或者再次使用psql -h localhost -U postgressudo -u postgres createuser -s $(whoami); createdb $(whoami),它不起作用。第一个命令要求输入密码,我不知道该密码。

1 个答案:

答案 0 :(得分:1)

您可以通过编辑<project_root>/config/database.ymlsource)来更改Rails用于连接到PostgreSQL的用户。

此外,您的第一个psql命令不起作用的原因是-h localhost,要求在host中输入pg_hba.conf,而不是local。您可以忽略-h localhost,使local项生效,因为默认设置是通过本地套接字进行连接。