기존 디비를 장고로 Migration 하기
2017. 1. 9. 15:11ㆍDev/Django
반응형
기존 DB를 장고로 마이그레이션하는 방법은 inspectdb 라는 명령어로 실행한다.
$ python manage.py inspectdb
위의 명령은 콘솔에 마이그레이션된 정보를 출력해준다. 긁어다가 사용할 수도 있지만 파일로 저장할 수도 있다.
$ python manage.py inspectdb > model.py
model.py를 프로젝트 루트에 만들어 준다.
$ python manage.py inspectdb > blog/model.py
프로젝트루트/blog/model.py 를 만들어준다.
기존에 있는 model.py가 지워지고 새로 생성되니 되도록 기존파일을 덮어쓰지 않도록 주의해야 한다.
만약 multiple database 환경으로 사용하고 있다면 setting.py는 다음과 같을 것이다.
DATABASES = { 'default': { 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.sqlite3', }, 'mysqldb': { 'NAME': 'second', 'ENGINE': 'django.db.backends.mysql', 'USER': 'username', 'PASSWORD': '123', } }
멀티플 디비 환경일 경우 다음과 같이 실행한다. database를 명시하지 않으면 default 디비환경으로 접속한다.
$ python manage.py inspectdb --database=mysqldb
에러가 다음과 같을 경우 mysql 모듈을 설치해야 한다.
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
mysql 모듈 설치(본인은 virtualenv 환경에서 설치. 설치환경마다 다를 수 있으므로 확인필요)
$ pip install mysqlclient
데이터베이스 명시 models.py 파일 생성 명령어
$ python manage.py inspectdb --database=mysqldb > models.py
반응형
'Dev > Django' 카테고리의 다른 글
Django ajax 처리 하기 - select (0) | 2017.01.10 |
---|---|
Django 디버깅 툴 (0) | 2017.01.10 |
django mysql date_format 에러 (0) | 2017.01.02 |
장고 개념 잡기 (0) | 2017.01.01 |
AWS EC2 Django 서버 계속 실행시키기 (0) | 2017.01.01 |