장고 데이터베이스 처음부터 다시 시작하기
개발하다보면 데이터베이스를 다시 밀어야 할 때가 있다.
기존의 데이터들을 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
데이터베이스를 지우고 새로 만드는 과정은 어렵지 않다. 다만, 기존 데이터들로 다시 채우는 게 어렵다.