[컴][웹] Django 에서 DB table 수정할 때 - big size table

장고에서 table 변경하기


django 에서 많은 record 를 가진 table 의 schema 를 변경하기


django 로 만들어 놓은 table 의 schema 를 변경하려 한다. 문제는 table 안의 record 가 너무 많아서 변경이 오래걸린다.

이때는 db 내용을 backup 하고 schema 를 변경한 후 다시 restore 하는 것이 낫다고 한다.[ref. 1]

그래서 아래와 같은 방법으로 변경하기로 했다.

절차

  1. db back up(pg_dump) : 
    • 참고
    • pg_dump -Fd mydb -t mytable -j 5 -f dumpdir
    • pg_restore --data-only -t mytable dumpdir > data.sql
  2. table 의 모든 record 삭제 : DELETE FROM mytable;
  3. django_migrations 실패한 migration 내용 삭제
    • 실패한 내용이 없다면 하지 않아도 된다.
    • db 의 django_migrations table 에서 실패한 migration 내용 삭제
    • django/myapp/migrations/....py 삭제
  4. django migration 
    • python ./manage.py makemigrations
    • python ./manage.py migrate
  5. db table 내용 restore(qsql)
    • /usr/bin/psql -d beluga < data.sql



References

댓글 없음:

댓글 쓰기