我正在学习红宝石。我已经创建了一些应用程序并使用它。
我想将数据库更改为postgres。我用
修改了gemfilegem 'pg'
[pg已安装在usr / bin / pg] 然后使用更新database.yml postgresql使用sqllite。
pg连接不好:
FATAL: role "user" does not exist
我已经创建了一些postgres用户。我应该改变什么才能与postgres合作?
development:
adapter: postgresql
database: db/development.postgresql
pool: 5
timeout: 5000
user:
adapter: postgresql
database: db/test.postgresql
pool: 5
timeout: 5000
production:
adapter: postgresql
database: db/production.postgresql
pool: 5
timeout: 5000
答案 0 :(得分:0)
如果您未指定用于连接PostgreSQL的用户名,libpq
将使用当前正在运行的用户的登录用户名进行连接。
libpq
是Rails用来连接PostgreSQL的Pg
gem。
因此,在database.yml
中,指定PostgreSQL用户连接到数据库,与user:
条目一样。确保这对应于PostgreSQL中存在的用户,pg_hba.conf
允许该用户连接。
要了解详情,请参阅client authentication chapter of the PostgreSQL docs。
答案 1 :(得分:0)
我知道这是一个两年前的问题,但我遇到了同样的问题,我通过更改config.yml的语法修复了它,然后我rake db:migrate
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: yourappnamehere_development
test:
<<: *default
database: yourappnamehere_testdevelopment:
production:
<<: *default
database: YOURAPPNAME_production
username: YOURUSERNAME
password: <%= ENV['YOURAPPNAME_DATABASE_PASSWORD'] %>