繁体   English   中英

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

[英]Ruby on Rails/Postgres - How can I create a new database for a user that doesn't exist?

我已经克隆了一个存储库,并通过一个装有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) sudo -u postgres createuser -s $(whoami); createdb $(whoami)再一次,它不起作用。 第一个命令要求输入密码,我不知道该密码。

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

另外,您的第一个psql命令不起作用的原因是-h localhost需要pg_hba.confhost项,而不是local 您可以省略-h localhost来使local条目生效,因为默认设置是通过本地套接字连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM