Bee*_*gie 35 ruby postgresql ruby-on-rails
我正在尝试为开发和测试创建postgres数据库.
我正在使用...
的Gemfile ...
gem 'pg'
Run Code Online (Sandbox Code Playgroud)
database.yml的
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: myapp_development
username: username
password:
test:
<<: *default
database: myapp_test
Run Code Online (Sandbox Code Playgroud)
rake db:create:all 回报
PG::InsufficientPrivilege: ERROR: permission denied to create database
: CREATE DATABASE "myapp_development" ENCODING = 'unicode'
.... (lots of tracing)
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "database"=>"myapp_development", "username"=>"username", "password"=>nil}
myapp_test already exists
Run Code Online (Sandbox Code Playgroud)
怎么了?
编辑
我只是尝试将database.yml中的用户名更改为我在Mac上使用的用户名.有效.它还告诉我,不仅maybe_test' already exists, but it also just told me thatmyapp_development`已经存在.
CREATEDB?这一切似乎太令人困惑,让我想起了在过去的日子里用apache设置的php.我不想每次创建新应用程序时都要处理问题,并且在开发期间尝试遵循heroku建议使用postgres.
Rok*_*san 89
运行时,我面临同样的问题rake db:test:prepare在postgresql我的Ruby on Rails的项目.从错误消息中可以清楚地看出,这是用户的权限问题.我从控制台添加CREATEDB了new_user以下权限.
要访问postgres控制台:
$ sudo -u postgres -i
postgres@host:~$ psql
Run Code Online (Sandbox Code Playgroud)
在那里:
postgres=# ALTER USER new_user CREATEDB;
Run Code Online (Sandbox Code Playgroud)
它现在很完美.您可能有另一个数据库所有权问题,为此您可以更改数据库privileges和owner以下命令.
postgres=# GRANT ALL PRIVILEGES ON DATABASE database_name to new_user;
postgres=# ALTER DATABASE database_name owner to new_user;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32951 次 |
| 最近记录: |