Python/Django
[Django, DB] Migration 초기화 방법 (+window 자동화 code)
yubi5050
2022. 6. 5. 15:12
초기화 시기
- Sqlite DB를 실수로 지워버렸을 때
- 잦은 model 변경으로 migrations 꼬였을 때
방법
1. Database Server 삭제 (db.sqlite3, mysql, postgresql 등)
2. 각 app들의 migrations/ 폴더 내의 __init__.py를 제외한 모든 파일 삭제 (중요!!)
3. 위 2. 가 진행되면 migrations 폴더와 __init__.py 만 폴더내에 남아 있어야 함. (없으면 진행안됨)
4. 다음 명령어 실행하면 정상적으로 돌아와있는 DB를 볼 수 있다.
python manage.py makemigrations
python manage.py migrate
자동화 코드 (window ver)
Project 폴더 밑에서 python init_db.py 실행
# init_db.py
import os
os.system('del /s "*.pyc')
os.system('del /s "000*.py')
자동화 코드 (mac, linux)
Project 폴더 밑에서 reset.sh 실행
#!/bin/bash - reset.sh
apps="app1 app2 app3"
for app in $apps
do
echo "Delete-" $app
find . -path "./$app/migrations/*.py" -not -name "__init__.py" -delete
done