티스토리 뷰

728x90
반응형

신규 DB를 생성하기 위해서 migrate를 수행하였습니다. 

python manage.py migrate

 

⚠️migrate 오류 발생 

raise MigrationSchemaMissing(
django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table (오류:  public 스키마(schema) 접근 권한 없음
LINE 1: CREATE TABLE "django_migrations" ("id" bigint NOT NULL PRIMA...
                     ^
)

 

 

🔍 오류 원인

"public 스키마 접근 권한 없음"
→ 현재 연결된 PostgreSQL 사용자인 "User" 계정이 public 스키마에 대한 접근 권한이 없기 때문에 django_migrations 테이블을 생성할 수 없습니다.


해결 방법

1️⃣ "User" 계정 에게 public 스키마 사용 권한 부여

PostgreSQL에 접속하여 아래 SQL 명령을 실행하세요.

-- 1. `User`에게 `public` 스키마 사용 권한 부여
GRANT USAGE ON SCHEMA public TO User;

-- 2. `User`에게 테이블 생성 권한 부여
GRANT CREATE ON SCHEMA public TO User;

-- 3. `User`이 생성한 객체(테이블 등)에 대한 기본 소유권 설정 (선택 사항)
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO User;
 

이제 iis_admin 사용자가 public 스키마에 테이블을 생성할 수 있습니다.


2️⃣ PostgreSQL 서비스 재시작

위 설정이 적용되지 않으면, PostgreSQL 서비스를 재시작하세요.

📌 Windows에서 PostgreSQL 재시작 방법

  1. Win + R → "services.msc" 입력 후 실행
  2. PostgreSQL 서비스 (postgresql-x64-<버전>) 찾기
  3. 오른쪽 클릭 → 재시작(Restart)

또는 명령 프롬프트에서:

net stop postgresql-x64-<버전> net start postgresql-x64-<버전>

3️⃣ 다시 마이그레이션 실행

이제 Django 프로젝트 디렉토리에서 다시 실행하세요.

python manage.py makemigrations 
python manage.py migrate
 

🚀 마무리

위 과정을 적용하면 "User" 계정사용자가 public 스키마에 테이블을 생성할 수 있어 django_migrations 테이블이 정상적으로 생성될 것입니다.
오류가 해결되었는지 확인해 보시고, 문제가 지속되면 PostgreSQL 로그를 확인해주세요!

728x90
반응형