seminar-2020 icon indicating copy to clipboard operation
seminar-2020 copied to clipboard

settings.py에서 mysql.connector.django 사용하도록 database 설정을 고친 경우 CI 실패

Open pullup-dip-burpee opened this issue 3 years ago • 3 comments

학교 과제를 하는 도중 OS를 통째로 날려먹는 일이 생겨서 기존에 쓰던 Ubuntu 18.04를 밀고 Ubuntu 20.04를 새로 깔았습니다. 세팅을 다시 했는데, mysql 설치 관련해서 문제가 생겨 구글링을 해서 mysql connector라는 걸 새로 설치하고, settings.py에서

'ENGINE': 'mysql.connector.django',

이런 식으로 설정을 해주었습니다.

문제는 이렇게 하니 CI가 오류가 나면서

django.core.exceptions.ImproperlyConfigured: 'mysql.connector.django' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
    'mysql', 'oracle', 'postgresql', 'sqlite3'

이런 식의 에러 메세지가 뜨는데... ㅠㅠ 혹시 비슷한 문제를 겪은 분이 있는지 여쭤봅니다.

pullup-dip-burpee avatar Nov 10 '20 06:11 pullup-dip-burpee

음 일단 Django가 뱉는 에러 메시지 그대로인 것 같습니다. MySQL connector를 설치하신 맥락과 이를 Django settings의 DATABASES의 ENGINE으로서 기입하신 맥락을 잘 모르겠으나 굉장히 생소하고, 'django.db.backends.mysql' 등을 이용해야할 것으로 보입니다.

davin111 avatar Nov 11 '20 13:11 davin111

음 일단 Django가 뱉는 에러 메시지 그대로인 것 같습니다. MySQL connector를 설치하신 맥락과 이를 Django settings의 DATABASES의 ENGINE으로서 기입하신 맥락을 잘 모르겠으나 굉장히 생소하고, 'django.db.backends.mysql' 등을 이용해야할 것으로 보입니다.

넵 MYSQL 버전 등을 바꿔보거나 해야겠습니다..!

pullup-dip-burpee avatar Nov 12 '20 07:11 pullup-dip-burpee

자문자답합니다... MySQL 버전은 바꾸지 않고 해결되었습니다! 원래는 requirements.txt에 있는 패키지들을 다 설치했음에도 불구하고

NameError: name '_mysql' is not defined

이런 에러가 떴었습니다. mysqlclient==2.0.1은 가상환경 상에서 설치된 상태지만, 혹시나 해서 여기를 보고 패키지들 다 다시 설치해보자 하다가 mysqlclient 설치에 필요하다고 하는 패키지들을 다음 커맨드를 통해 설치했습니다.

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

그랬더니 되더군요! mysqlclient가 설치되었다고 뜨더라도 실제론 뭔가가 부족했다던가 하는 상황이 아니었나 생각해봅니다...

pullup-dip-burpee avatar Nov 12 '20 08:11 pullup-dip-burpee