PostgreSQL Schema 접근 에러
스키마, 테이블도 만든 상태이나
테이블 조회시 아래와 같은 오류가 나는 경우
"ERROR: 오류: "TABLE_NAME" 이름의 릴레이션(relation)이 없습니다."
해결방법
1. 스키마명.테이블명으로 조회
2. 바라보고 있는 스키마 변경
=============== 요 약 ===============
1. SELECT * FROM 스키마명.테이블명;
2-1. SHOW search_path;
2-2. SET search_path TO "적용할스키마명", public;
2-3. SELECT pg_reload_conf();
==================================
=========================추가 설명=========================
2-1. SHOW search_path; 실행하기
["$user", public] 혹은 ["현재적용된스키마명", public] 으로 나타난다.
조회하고자 하는 테이블의 스키마가 다른경우 해당 테이블을 조회할 수 없고
"테이블명" 이름의 릴레이션(relation)이 없습니다." 라고 에러 메시지가 나타난다.
2.1-A) 현재 사용하고자 하는 툴 내에서만 변경할 경우
> SET search_path TO "적용할스키마명", public;
다시 해당 테이블을 조회하면 정상 작동하는 것을 확인할 수 있다.
2.1-B) 영구적으로 해당 스키마를 적용할 경우
"postgresql.conf" 파일을 찾아 search_path를 수정해줘야 한다.
아래 쿼리로 파일의 위치를 찾는다.
SELECT * FROM pg_settings WHERE category = 'File Locations';
postgresql.conf 파일을 에디터로 열어 search_path를 수정한다.
접근한 사용자로 적용할 경우 아래와 같이 적용하면 된다.
search_path='"$user", public'
2-3. SELECT pg_reload_conf(); 실행하기
다시 해당 테이블을 조회하면 정상 작동하는 것을 확인할 수 있다.