본문으로 이동

장고:서버 옮기기

학교의 모든 지식. SMwiki

장고! 웹 프레임워크! 틀:장고

  1. 장고:개요
  2. 장고:웹페이지설계
    1. 장고:앱
    2. 장고:url
    3. 장고:model
      1. 장고:DB
      2. 장고:모델 필드
      3. 장고:모델의 변경
    4. 장고:view
      1. 장고:클래스형 뷰, 제네릭 뷰
      2. 장고:view 각종 기능
    5. 장고:template
    6. 장고:static. 정적파일 사용하기
      1. 장고:CSS 사용하기
      2. 장고:JS 사용하기
      3. 장고:글꼴 사용
      4. 장고:부트스트랩
    7. 장고:media. 미디어 파일 사용하기
  3. 장고:관리자페이지
  4. 장고:settings.py
  5. 장고:기능구현
    1. 장고:회원관리
    2. 장고:유저
    3. 장고:커스텀 유저
    4. 장고:소셜로그인
    5. 장고:입력받기
    6. 장고:저장된 내용 활용하기
    7. 장고:변수 내보내기
    8. 장고:글쓰기
    9. 장고:페이징(페이지나누기)
    10. 장고:답변쓰기(댓글쓰기)
    11. 장고:추천,즐겨찾기
    12. 장고:새글(최신글) 나타내기
    13. 장고:썸머노트 설치
    14. 장고:네비게이션 바 만들기
    15. 장고:검색기능
    16. 장고:카테고리 만들기
    17. 장고:사진 올리기
    18. 장고:파일 업로드
    19. 장고:이메일app 만들기
    20. 장고:매직 그리드
  6. 장고:웹서비스
    1. 장고:Git
    2. 장고:리눅스에 올리기
    3. 장고:우분투에 올리기(nginx 사용)
    4. 장고:도커로 올리기
    5. 장고:서버 옮기기
  7. 장고:팁

개요

종종 서버를 이사해야 할 때가 있다. 하드디스크의 손상을 고려해 새 서버로 옮긴다든가...

업그레이드는 업그레이드 문서를 참고하자.

Django 프로젝트 이전 절차

  1. 기존 서비스 중단 여부 결정 (무중단 / 점검 시간 확보)
  2. 옮기기
    크게
    1. 파이썬 가상환경
    2. 디렉토리
    3. DB
    정도만 옮기면 된다.

파이썬 관련 옮기기

기존 서버에서

과정 설명 비고
Python 버전 확인 버전 안맞으면 연달아 라이브러리에서 깨지는 경우 있음. python --version
라이브러리 백업 pip freeze > requirements.txt

새 서버에서

과정 설명 비고
Python 가상환경 구성 python -m venv venv

source venv/bin/activate

라이브러리 설치 위에서 백업한 그대로 진행한다. pip install -r requirements.txt

데이터 베이스 옮기기

기존 서버에서

데이터베이스 종류 확인 (SQLite / PostgreSQL / MySQL 등)

DB 종류 설명 비고
SQLite db.sqlite3 파일을 그대로 복사
PostgreSQL pg_dump dbname > backup.sql
MySQL / MariaDB mysqldump -u user -p dbname > backup.sql

새 서버에서

각 DB에 맞게 sql 파일을 복원하는 명령을 수행하면 됨. mysql -u user -p dbname < backup.sql

기타

이후 웹 서버 설정, systemd 등록 등은 다른 장고 웹호스팅 관련 문서를 참고하자.

점검

점검도 웹호스팅 문서를 따라가자.

이전 후 체크리스트

  • DEBUG = False 확인
  • ALLOWED_HOSTS 확인
  • 보안 키 유출 여부 점검
  • SSL 인증서 적용
  • 백업 정책 설정
  • 크론잡 / Celery / Redis 정상 동작 확인

참고 사항

  • 대규모 이전 시 Docker 사용을 권장
  • 작업 전 반드시 데이터베이스 백업 수행
  • 테스트 서버에서 1회 이상 이전 연습 권장(DB는 망가지면 끝임;;)