장고 데이터베이스 처음부터 다시 시작하기

소요 시간: 3분

개발하다보면 데이터베이스를 다시 밀어야 할 때가 있다.

기존의 데이터들을 loaddata을 이용해 새로운 데이터베이스에 다시 불러오려고 했으나 슈퍼 계정을 생성하는 바람에 인해 pk가 엉켜버렸다.

데이터베이스 관련 지식이 없어서 차라리 다시 밀고 새로 생성하는 게 더 낫다고 판단했다.

(주의! 데이터베이스를 삭제하면 기존의 데이터가 전부 사라지므로 필요한 경우, 데이터들을 미리 백업해야 한다.)


먼저 기존의 데이터베이스를 지웠다.

DROP DATABASE your_database_name;


그 다음 새로운 데이터베이스를 다시 생성했다.

CREATE DATABASE new_your_database_name;


기존에 있던 계정을 새 데이터베이스에 권한을 부여했다.

grant all privileges on new_your_database_name.* to ’your_account’@'localhost';


마이그레이션 파일 삭제했다. 터미널 프로젝트 폴더 위치에서 다음 명령어 실행한다.

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete

find . -path "*/migrations/*.pyc"  -delete


다시 마이그레이션 파일 만들었다.

python3 manage.py makemigrations


마이그레이트하면 새로운 테이블들이 생성된다.

python3 manage.py migrate


데이터베이스를 지우고 새로 만드는 과정은 어렵지 않다. 다만, 기존 데이터들로 다시 채우는 게 어렵다.

장고 리스트