[Django] url을 사용해 데이터베이스 연결

nikevapormax·2023년 10월 14일
0

TIL

목록 보기
110/116

상황

  • 다른 팀원이 생성해 docker로 띄운 데이터베이스에 접근해야 하는 경우가 발생했다.
  • 대부분 아래 코드를 사용해 데이터베이스 정보를 입력해 접근할 수 있다.
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": os.environ.get("DATABASE_NAME"),
        "USER": os.environ.get("DATABASE_USER"),
        "PASSWORD": os.environ.get("DATABASE_PASSWORD"),
        "HOST": os.environ.get("DATABASE_HOST"),
        "PORT": os.environ.get("DATABASE_PORT"),
        "OPTIONS": {
            "charset": "utf8mb4",
            "collation": "utf8mb4_general_ci",
            "sql_mode": ",".join(sql_mode),
            "init_command": "SET SESSION BINLOG_FORMAT = 'MIXED'",
        },
        "TIME_ZONE": "Asia/Seoul",
    },
}
  • 팀원에게 공유받은 정보로 연결하려 하였지만, 연결 정보가 잘못되었다는 응답이 돌아왔다.

해결

  • dj_database_url을 활용하였다.
  • 팀원이 공유해준 정보에 데이터베이스의 url이 존재했기에 사용할 수 있었다.
  • 사용법
    • pip install dj-database-url

    • 아래와 같이 코드를 작성한다.

      import dj_database_url
      
      
      DATABASES = {"default": dj_database_url.config(default="mysql://{USER}:{PASSWORD}@{HOST}:{PORT}/{NAME}")}
profile
https://github.com/nikevapormax

0개의 댓글