我已经克隆了一个存储库,并通过装有 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 postgres
或 sudo -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/