역할이 존재하지 않으며 PostgreSQL을 사용할 때 데이터베이스를 만들 수 없습니다.
내 응용 프로그램에 Heroku를 사용하고 있으며 PostgreSQL이 필요하지만 개발에는 여전히 SQLite3를 사용할 수 있습니다. Heroku는 2 개의 다른 데이터베이스를 사용하지 말라고 강력히 권고했기 때문에 개발을 위해 PostgreSQL로 변경하기로 결정했습니다. 을 설치하고 gem pg
공식 PostgreSQL 사이트로 이동하여 Windows 설치 프로그램을 가져오고 database.yml
. 설치하는 동안 PostgreSQL에 대한 암호가 필요하므로 암호를 만들었습니다. 나는 변경했다 pg_hba.conf
사용하는 파일 md5
에 trust
: 주문 가져 오기 과거에 fe_sendauth: no password supplied
데이터베이스를 만들려고 할 때.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust # was md5
# IPv6 local connections:
host all all ::1/128 trust # was md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host replication postgres 127.0.0.1/32 trust
#host replication postgres ::1/128 trust
그러나 그것을 제거한 후 이제 이것을 얻습니다.
$ rake db:create
(in C:/app)
FATAL: role "User" does not exist
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"utf8",
"database"=>"app_test", "pool"=>5, "username"=>nil, "password"=>nil}
나는이 아직도 development.sqlite3
하고 text.sqlite3
그것은 문제가 될 수있다, 선물을? 무엇을해야합니까?
내 전체 요점은 다음과 같습니다. https://gist.github.com/1522188
에 사용자 이름을 추가하고 database.yml
응용 프로그램의 이름 (또는 이름의 일부 변형)을 사용자 이름으로 사용할 수도 app_name
있습니다. 자리 표시 자로 사용할 것입니다 .
development:
adapter: postgresql
encoding: utf8
database: app_development
pool: 5
username: app_name
password:
그런 다음 다음을 사용하여 PostgreSQL 내부에 사용자 (일명 "역할")를 만듭니다 psql.exe
.
$ psql -d postgres
postgres=# create role app_name login createdb;
postgres=# \q
첫 번째 줄은 터미널에 있고 다음 두 줄은 내부에 psql
있습니다. 그런 다음 rake db:create
.
User
사용자는 아마도 기본이지만 user
이미 촬영 당신이 사용하고자하는 경우는 케이스를 보존하기 위해 인용해야 할 것이다, 그래서 PostgreSQL의 다른 목적을 위해 User
사용자 이름과 같이
postgres=# create role "User" login createdb;
어쨌든 응용 프로그램 당 한 명의 사용자를 만드는 것이 좋습니다.
test
항목에 대해서도 유사한 작업을 수행하고 싶을 것입니다 database.yml
.
.NET Framework에를 username
지정하지 않은 경우 PostgreSQL은 계정 (로그인) 이름으로 데이터베이스를 생성하려고 합니다 config/database.yml
. OS X 및 Linux에서 whoami
. Windows를 사용중인 것 같습니다.
해결 방법 A : 찾고있는 사용자 와 일치 하는 PostgreSQL 사용자 를 만듭니다 . 예를 들면
createuser --superuser some_user
솔루션 B : mu의 대답에 표시된대로 사용자 이름 을 명시 적으로 설정하여 DB 사용자를 변경합니다 .
예를 들어 postgres라는 postgres에 대한 특정 계정 / 사용자가 컴퓨터에있는 경우.
그런 다음이 명령을 실행하면 역할 이름을 입력하라는 메시지가 표시됩니다.
sudo -u postgres createuser --interactive
그런 다음
rake db:create
작동해야합니다!
'IT박스' 카테고리의 다른 글
Python MySQLdb 문제 (TypeError : % d 형식 : str이 아닌 숫자가 필요함) (0) | 2020.12.07 |
---|---|
Git을 사용하면 무단계 변경으로 분기 변경 가능 (0) | 2020.12.07 |
자바 스크립트에서 내 Json에서 "를 제거하는 방법? (0) | 2020.12.07 |
두 클래스가 하나의 div에 할당되면 클래스가 무시됩니다. (0) | 2020.12.07 |
파이썬 정규식 일치를 통해 반복 (0) | 2020.12.07 |