기존 Mysql or Mariadb를 사용하고 있었고, 이것을 장고에 연결 시키려고 한다.
1. django 프로젝트의 settings.py를 연다 .
DATABASES = {} 여기에 기본적으로 'default'라는 key가 있다.
이 dictionary에 연결시킬 db정보를 넣는다.
example로 'new_database' 로 넣었다.
2. database router 를 만들어 준다.
settings.py에 아래 DATABASE_ROUTERS를 넣어준다. blog app안에 routers를 만들 것이다.
app 이름이 blog라면 project/blog/routers.py 를 만들어 준다.
아래 사이트를 참고하여 router를 만들어 준다.
example)
* 나의 예는 default 로 오는 곳에 admin, auth, contenttypes, sessions 등의 정보를 넣기 위해서 migrate를 True로 넘겼다. 나머지 db에는 그런 기록이 필요 없기 때문에 해당 내용을 migrate를 하지 않는다.
3. 기존에 db를 가져온다.
$ python manage.py inspectdb --database=new_db1 > blog/new_models.py
new_db1의 database를 blog 안에 new_models.py 라는 이름으로 migrate 시킨다.
blog/new_models.py 라는 파일이 생기면서 기존에 있던 db스킴들이 생겼을 것이다.
* inspectdb는 Meta정보에 app_label을 생성하지 않는다. 이건 수동으로 하자.
3-1. new_models.py에 들어가서 class Meta: 아래에 app_label = '<db 이름 추가>' 하자
ex) app_label = 'testdb2'
4. $ python manage.py makemigrations
$ python manage.py migrate
하면 끝.
blog/admin.py 에 들어가서 해당 모델을 등록 시킨 후 admin사이트에 가서 확인해 보자.
* admin 사이트에 들어가려면 super user로 admin아이디를 하나 생성해야 한다. 안했으면 하자.
ex) $python manage.py createsuperuser
$python manage.py runserver
주소창에 localhost:8000/admin
아이디 치고 들어가면 데이터를 볼 수 있다.
'IT > Python' 카테고리의 다른 글
tensorflow Keras - not_equal, cast Test (0) | 2019.03.13 |
---|---|
keras Masking Test (0) | 2019.03.13 |
/usr/bin/python3: No module named pip (0) | 2018.02.23 |
사진을 보고 낮인지 저녁인지 간단한 코드로 판단 (0) | 2018.02.20 |
matplotlib 라이브러리 사용할 때 imread() 오류 (0) | 2018.02.20 |