⭐️Tips. 데이터베이스 초기화 & 확인

yeeun lee·2020년 4월 13일
0

Django

목록 보기
6/8

데이터를 모델링하고 마이그레이션, 마이그레이트를 하면 데이터를 넣을 준비가 된 것 같다. 하지만 실제로 데이터를 넣다 보면 수정할 사항이 생기고, 오타도 발견된다😤

데이터를 많이 넣지 않은 상황이면 models.py는 수정한 상태로 두고, migrations 파일만 지워서 다시 오류 없이 마이그레이션을 하도록 만드는 것이 편하다.

1. db.sqlite3 삭제

manage.py가 있는 루트 디렉토리에서 db.sqlite3를 지운다.

rm db.sqlite3

2. cd migrations

테이블 관련 변동사항이 차곡차곡 저장되어 있는 디렉토리에 들어가서 init 파일을 제외한 나머지를 모두 지워주자. 내가 모델링을 한 앱의 디렉토리 -> migrations 에 들어가야 하는 점을 유의할 것!

2.1 변경 사항 지우기

우선 migrations 파일에서 테이블 관련 변경사항을 담고 있는 000으로 시작되는 파일들을 지운다.

rm 000*

2.2 __pycache__ 지우기

이게 무슨 파일인지 모르겠어서 파이썬 공식 문서를 찾아봤다. 모듈 로딩을 빠르게 하려고, 파이썬은 __pycache__ 디렉터리에 각 모듈의 컴파일된 버전을 module.version.pyc 라는 이름으로 캐싱한다고 한다.

rm -rf __pycache__

2.3 init 파일은 남겨둔다

모두 지우고 나면 Migrations 디렉토리에는 __init__.py만 남는다. 요 파일까지 지우면 migrations 했을 때 바뀐 점이 없다고 알럿이 뜰 수 있으니 꼭 남겨두자.

3. 다시 makemigrations

다시 루트 디렉토리로 와서 makemigrations -> migrate 를 한다. 모델 다시 적용하기 완료!

4. 데이터 확인

데이터베이스를 싹 밀고 test record를 넣은 뒤 테이블을 확인하고 싶다면 아래 방법으로 접근하자. sqlite3이 있는 루트 디렉토리에서 실행해야 한다.

sqlite3 db.sqlite # sqlite3으로 db열어줘 

SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.

sqlite> .tables # 내 프로젝트 안에 테이블 보여줘 
comment_comment      django_migrations    user_user
django_content_type  django_session

select * from user_user; # user_user table의 모든 내용 보여줘. 
#sql 데이터 관련 명령어는 세미콜론 뒤에 꼭 붙이는 것 잊지 말기! 안 붙이면 실행이 안 돼요 

1|yeni|'토큰'|2020-04-17 01:10:26.469614|2020-04-17 01:10:26.469649 
# 토큰은 엄청 길지만 보안 상 표시하지 않았다
profile
이사간 블로그: yenilee.github.io

0개의 댓글