Django - Multiple databases(using, inspectdb)
Web/Django

Django - Multiple databases(using, inspectdb)

뉴비뉴 2020. 4. 20.

안녕하세요.

 

 

약 2주 전에 실시간 데이터를 다룰 수 있는 Database를 연동하기 위해 ReadOnly Database를 

python manage.py inspectdb 하여 models.py 를 생성하여 사용중이였습니다.

이 DB를 A DB라고 말하겠습니다.

 

A DB를 사용하던 중 B DB의 실시간 데이터를 가져오기 위해 데이터베이스가 필요하게되었고,

서로 다른 데이터베이스이기 때문에 NAME, PASSWORD가 달라서 어떻게 접근하고,

어떻게 사용하는지 모르는 상태였습니다.

 

https://docs.djangoproject.com/en/3.0/topics/db/multi-db/

 

Multiple databases | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

Django에서 제공하는 Multiple Databases 가 있어서 settings에 Database에 등록을 해주었습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
DATABASES = {
    'default': {
        'ENGINE''django.db.backends.mysql',
        'NAME''A DB',
        'PASSWORD": '',
    },
    'B_DB': {
    'ENGINE': 'django.db.backends.mysql',
        'NAME': 'B DB',
        'PASSWORD": ''
    },
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

B DB도 당연히 inspectdb 하였고, A(models).py , B(models).py 가 생성되었습니다.

 

여기서 헷갈린 점이 python manage.py shell 을 실행될 때 default가 실행된다는 것은 알았는데

B_DB를 사용하려면 어떻게 해야되는 것이였고, 공식문서를 자세히보니 아래와 같은 해결방법이 있었습니다.

 

1
2
B.objects.using('B_DB').all()
 

감사합니다.

댓글

💲 추천 글