2014-12-24 6 views
2

역할 이름을 대소 문자를 구분하는 사람은 누구나 악의적 인 사람입니다.역할 이름은 Postgres에서 대소 문자를 구분합니다.

Windows에서 DOS 명령 줄에서 레이크 명령이 작동하지 않는 이유를 알아 내려고 몇 시간이 걸렸습니다. 그 실수는 내가 그것을 창조했다는 것을 완벽하게 잘 알고있을 때 'Michael'이 존재하지 않는다고 계속 말하고있다.

psql 명령 -c "CREATE ROLE Michael ..."이 부상을 당하면서 역할이 제대로 작성되었지만 모두 소문자입니다.

답변

1

마지막으로 pgAdmin을 사용하여 역할의 첫 번째 문자를 대문자 'M'로 변경 한 다음 모든 Windows 사용자 이름이 다양한 프로세스로 전달되면 모든 명령이 작동합니다.

디자이너 -하고있는 일에주의를 기울이십시오! 역할 이름이 대소 문자를 구분할 이유가 없습니다.

+0

'그런 다음 내 모든 명령이 내 Windows 사용자 이름으로 작동하여 다양한 프로세스에 전달되었습니다. '명령은 무엇입니까? 어떤 프로세스가 있습니까? (이것들은 어떤 종류의 ORM을 사용 했습니까?) – wildplasser

+0

rake db : drop, db : reset과 같은 dropdb 또는 rails 명령을 포함한 postgres 관련 명령이 있습니다. – vbsql7

+2

요점은 : 역할 이름은 테이블 이름이나 열 이름과 동일한 대/소문자를 따릅니다. 대소 문자를 구분하여 일치 시키려면 (또는 ORM 논리) 큰 따옴표를 사용할 수 있습니다. 일반적으로 데이터베이스 객체에 대소 문자가 중요한 이름을 사용하는 것은 좋지 않은 생각입니다. 미들웨어 (* somtines *)가 자동으로 식별자를 인용하면 어렵지 않습니다. – wildplasser