djongo' isn't an available database backend or couldn't be imported
mongoDB를 연동하려던 중 대충 이런 메시지를 확인했다. djongo 패키지도 제대로 설치되어 있었기에 호환성 문제인가 싶어서 파이썬을 3.12에서 3.9로 다운그레이드 했다.
깃허브에서 이슈를 찾아보고 pytz도 설치해봤는데 전혀 바뀌지 않았다.
답답해서 오류메시지를 찾던 중 django.utils에 six가 없다는 오류메시지를 발견했다.
구글링해봤더니 아예 PyPI에 패키지가 존재한다.
알고보니 장고 3.x 버전에서는 six 때문에 호환성 문제가 다수 발생하는 것 같다.
패키지를 설치한 후 마이그레이션한 결과 제대로 동작했다.
일줄 알았으나... SQL Decode 문제로 인해 망해버렸다. 버전 호환성이 많이 꼬여서 파이썬 3.6까지 다운그레이드해야 할 것 같아서 다른 방법을 찾기로 했다.
django5 이상을 지원하는 djongo5 패키지가 존재해서 설치해봤는데, 이마저도 authentication 에러가 발생해서 문제를 찾고 있다.
03_19
settings.py가 문제였다. DB user와 DB name이 동일해서 문제가 생겼었다. 만세!!!
이제 authentication 문제는 해결했다...
아 그리고 mongo.conf도 비밀번호 인증 설정이 안되있어서 이것도 바꿔줘야 했다.
하는 김에 호스트 ip도 0.0.0.0으로 바꿔줬다.
raise SQLDecodeError
djongo.exceptions.SQLDecodeError:
Keyword: None
Sub SQL: None
FAILED SQL: ('INSERT INTO "django_migrations" ("app", "name", "applied") VALUES (%(0)s, %(1)s, %(2)s)',)
Params: (['accounts', '0001_initial', datetime.datetime(2025, 3, 19, 15, 44, 49, 937159)],)
Version: 1.3.9
The above exception was the direct cause of the following exception:
.
.
.
django.db.utils.DatabaseError
로그인은 성공했으나... 다시 sql decode 문제가 돌아왔다. 에러메시지를 제대로 알려주지 않아서 문제인데 GPT로 해석시켜보니 NULL, NOT NULL을 안정적으로 변환시키지 못하는 Djongo의 에러라고 한다(???)
계속해서 문제를 찾아보았고, 아직도 전혀 모르겠다.
This version of djongo does not support "NULL, NOT NULL column validation check" fully. Visit https://nesdis.github.io/djongo/support/
Applying accounts.0001_initial...This version of djongo does not support "schema validation using CONSTRAINT" fully. Visit https://nesdis.github.io/djongo/support/
이런 메시지가 있었다.
그리고 페이지는 닫아버려서 들어가지도 못한다... 뭐냐 이게?
문제를 정확히 알기 위해 계속해서 찾아보고있었는데...
ORM이 그냥 decode를 못하고 있었다.
from accounts.models import UserProfile
from django.utils import timezone
# 새로운 유저 데이터 생성
user = UserProfile.objects.create(
username="testuser",
email="test@example.com",
password="securepassword123",
created_at=timezone.now() # auto_now_add=True 대신 직접 설정
)
print("✅ 새로운 사용자 생성 완료:", user)
해당 코드를 만드는 과정에서 그냥 파싱을 못하는 것이었다...
Model에 Unique 제약조건이 걸려있어서 이게 문제인가 싶어서 없애봤으나!!!
놀랍게도!!! 그냥 못 만 드 는 것 이 었 다 ! ! !
https://www.mongodb.com/ko-kr/docs/languages/python/django-mongodb/current/model-data/models/
https://docs.djangoproject.com/en/5.1/topics/db/models/
https://docs.djangoproject.com/en/5.1/ref/models/fields/
이것과.. djongo docs도 살펴보았으나 전혀 문제를 해결하지 못했다.
하나도 모르겠다!
SQL Decode 에러는 결국 sql 파싱과 관련되있기 때문에 혹시...? 하면서 sqlparse 패키지를 다운그레이드 해보았다. (깃헙 이슈가 굉장히 많았다.)
그리고 정상적으로 마이그레이션이 완료되었다.
장고가 5.1.7 버전이기 때문에 sqlparse 패키지와 의존성 문제로 인해 나중에 문제가 생길수도 있다.
굉장히 생각이 많아진다...
어쨌든 마이그레이션은 성공했다.