Django 에서 MongoDB를 이용하려고 하니 기존에 ORM 기반으로 만든 코드들이 그대로 동작하지 않는다. 일단 호환성을 위해 Djongo 라는 라이브러리가 제공되고 있긴 하나 전부 지원하는 것이 아니기 때문이다.
제일 문제는 model 선언부에서 만든 테이블이 그대로 호환되지 않는다는 점.
일단 models 는 여기서 받아 쓰는 것으로 model.py 파일을 변경하면 된다.
from djongo import models
머 스트링, Int, Boolean 이런 것들은 문제가 아니지만 관계형 DB 에서 자주 쓰이는 primary key, foreign key, onetoone mapping 등 relation 과 관련된 키워드들이 100프로 동일하게 변환해 주지 못하므로 발생하는 것
OneToOneField
ForeignKey
JSONField 안되네
머 이거 말고도 더 있겠죠.....
일단 Djongo 페이지에서 이런 정보들을 수집해서 피해서 쓰는 수 밖에 없는 듯 하다.
https://www.djongomapper.com/get-started/
일단 정리는 여기까지.
MongoDB 사이트에서 제안하는 방법중에 MongoEngine 을 쓰는 방법이 괜찮아 보인다.
아래 테이블 정도 변경해 주면 된다고 하는데....
https://www.mongodb.com/compatibility/mongodb-and-django
Django’s ORM | MongoEngine |
from django.db import models | from mongoengine import Document, fields or from mongoengine import * |
Model | Document |
models.CharField | fields.StringField() |
그냥
PostgreSQL
https://www.postgresql.org/
로 넘어가~~~
다운로드는 여기서
https://content-www.enterprisedb.com/downloads/postgres-postgresql-downloads
Vlada Karpovich 님의 사진, 출처: Pexels