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

标签 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)再一次,它不起作用。第一个命令要求输入密码,我不知道。

最佳答案

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

另外,你第一个 psql 的原因命令不起作用是 -h localhost需要 host进入 pg_hba.conf ,而不是 local .您可以省略 -h localhost对于local条目生效,因为默认是通过本地套接字连接。

关于ruby-on-rails - Ruby on Rails/Postgres - 如何为不存在的用户创建新数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52748746/

相关文章:

ruby - rspec 中的依赖测试

sql - 如何使用重复项的计数更新 PostgreSQL 表

java - 为 PostgreSQL 使用种子文件时 JPA 中的异常

ruby-on-rails - 在rails中自动为用户创建记录

html - 如何垂直填充表格数据?

javascript - 如何在没有原型(prototype)助手的情况下从 Rails Controller 在页面中呈现部分内容

ruby - 快速找出重复哈希值的所有键的方法

ruby - 在 Linux 上编译 Ruby 1.9.2 所需的先决条件?

sql - 每个用户仅选择 3 行 - SQL 查询

ruby-on-rails - 在Rails 3中的Flash消息中呈现局部