본문 바로가기

Development/Django

[Django] "database does not exist" when connecting to AWS RDS postgres DB

728x90

 

Django Logo

 

1. 문제 상황

Docker 위에서 Django를 사용해 AWS RDS에 DB를 연동시키는 과정에서 다음과 같은 에러가 발생하였습니다.

"database does not exist"

분명히 AWS console에 접속하여 RDS가 존재하는 것을 확인하였으나 python manage.py migrate 명령어를 입력하면 위의 에러처럼 Database가 존재하지 않는다고 하였습니다. 

 

2. 해결 방법

그러나, 검색을 통해서 해결방법을 찾았습니다.

stackoverflow.com/questions/51014647/aws-postgres-db-does-not-exist-when-connecting-with-pg

 

AWS Postgres DB "does not exist" when connecting with PG

I can't seem to connect to my DB instance in AWS. I'm using the pg package and following the examples from the website is not working. A search for "aws postgres database does not exist" really is...

stackoverflow.com

위 사이트에서 RDS Database Name이 AWS RDS DB 식별자가 아니라 default로 "postgres"인 경우가 있다고 하였습니다.

그래서, settings.py 파일에서 DATABASES의 NAME 부분에 AWS RDS DB 식별자가 아니라 "postgres"를 입력하면 위와 같은 에러가 해결됩니다.

DATABASES = {
    "default": {
        "ENGINE": os.environ.get("SQL_ENGINE", "django.db.backends.sqlite3"),
        "NAME": os.environ.get("SQL_DATABASE", os.path.join(BASE_DIR, "db.sqlite3")),
        "USER": os.environ.get("SQL_USER", "user"),
        "PASSWORD": os.environ.get("SQL_PASSWORD", "password"),
        "HOST": os.environ.get("SQL_HOST", "localhost"),
        "PORT": os.environ.get("SQL_PORT", "5432"),
    }
}

위와 같은 오류를 해결하는데 하루를 쓸 정도로 열심히 하였지만 이 블로그 글을 통해서 저 말고 다른 사람들은 이러한 시간 낭비가 없으면 좋겠습니다.

728x90