장고:서버 옮기기: 두 판 사이의 차이
보이기
잔글 →파이썬 관련 옮기기 |
|||
| 28번째 줄: | 28번째 줄: | ||
|- | |- | ||
|라이브러리 백업 | |라이브러리 백업 | ||
| | |현재 사용하는 라이브러리 정보 생성. | ||
|pip freeze > requirements.txt | |pip freeze > requirements.txt | ||
|- | |- | ||
| 41번째 줄: | 41번째 줄: | ||
!설명 | !설명 | ||
!비고 | !비고 | ||
|- | |||
|파이썬 설치 | |||
|이전에 확인한 버전에 맞게 설치한다. | |||
| | |||
* sudo apt update | |||
* sudo apt install python3.11 python3.11-venv python3-pip # 파이썬 버전에 맞게. | |||
|- | |- | ||
|Python 가상환경 구성 | |Python 가상환경 구성 | ||
| | |서버에서 운영하는 프로젝트가 1개라면 굳이 가상환경을 만들 필요는 없다. 그러나, 만들어두는 게 추후 문제해결 등에서 좋지. | ||
|python -m venv | 이전 서버와 완전 똑같이 만들어줄 준비를 하자. | ||
source venv/bin/activate | |python -m venv 가상환경폴더명 | ||
source venv/bin/activate # 가상환경 활성 | |||
|- | |- | ||
|라이브러리 설치 | |라이브러리 설치 | ||
|위에서 백업한 그대로 진행한다. | |위에서 백업한 그대로 진행한다. | ||
|pip install -r requirements.txt | |pip install -r requirements.txt | ||
|} | |||
== 디렉토리 옮기기 == | |||
{| class="wikitable" | |||
!과정 | |||
!설명 | |||
!비고 | |||
|- | |||
|프로젝트 디렉토리 | |||
| | |||
| | |||
|- | |||
|자동화 쉘 | |||
| | |||
| | |||
|} | |} | ||
| 75번째 줄: | 97번째 줄: | ||
=== 새 서버에서 === | === 새 서버에서 === | ||
각 DB에 맞게 sql 파일을 복원하는 명령을 수행하면 | 각 DB에 맞게 sql 파일을 복원하는 명령을 수행하면 된다. | ||
(PostgreSQL: psql, MySQL/MariaDB: mysql 등) | |||
ex) <code>mysql -u user -p dbname < backup.sql</code> | |||
== 기타 == | == 기타 == | ||
| 96번째 줄: | 122번째 줄: | ||
* 대규모 이전 시 Docker 사용을 권장 | * 대규모 이전 시 Docker 사용을 권장 | ||
* 작업 전 반드시 데이터베이스 백업 수행 | * 작업 전 반드시 데이터베이스 백업 수행 | ||
* 테스트 서버에서 1회 이상 이전 연습 권장(DB는 | * 테스트 서버에서 1회 이상 이전 연습 권장(DB는 손상 시 복구가 매우 어렵다) | ||
2025년 12월 24일 (수) 02:21 판
장고! 웹 프레임워크! 틀:장고
개요
종종 서버를 이사해야 할 때가 있다. 하드디스크의 손상을 고려해 새 서버로 옮긴다든가...
업그레이드는 업그레이드 문서를 참고하자.
Django 프로젝트 이전 절차
- 기존 서비스 중단 여부 결정 (무중단 / 점검 시간 확보)
- 옮기기
- 크게 다음 것들만 옮기면 된다.
- 파이썬 가상환경
- 프로젝트 디렉토리
- 데이터베이스
파이썬 관련 옮기기
기존 서버에서
| 과정 | 설명 | 비고 |
|---|---|---|
| Python 버전 확인 | 버전 안맞으면 연달아 라이브러리에서 깨지는 경우 있음. | python --version |
| 라이브러리 백업 | 현재 사용하는 라이브러리 정보 생성. | pip freeze > requirements.txt |
새 서버에서
| 과정 | 설명 | 비고 |
|---|---|---|
| 파이썬 설치 | 이전에 확인한 버전에 맞게 설치한다. |
|
| Python 가상환경 구성 | 서버에서 운영하는 프로젝트가 1개라면 굳이 가상환경을 만들 필요는 없다. 그러나, 만들어두는 게 추후 문제해결 등에서 좋지.
이전 서버와 완전 똑같이 만들어줄 준비를 하자. |
python -m 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 파일을 복원하는 명령을 수행하면 된다.
(PostgreSQL: psql, MySQL/MariaDB: mysql 등)
ex) mysql -u user -p dbname < backup.sql
기타
이후 웹 서버 설정, systemd 등록 등은 다른 장고 웹호스팅 관련 문서를 참고하자.
점검
점검도 웹호스팅 문서를 따라가자.
이전 후 체크리스트
- DEBUG = False 확인
- ALLOWED_HOSTS 확인
- 보안 키 유출 여부 점검
- SSL 인증서 적용
- 백업 정책 설정
- 크론잡 / Celery / Redis 정상 동작 확인
참고 사항
- 대규모 이전 시 Docker 사용을 권장
- 작업 전 반드시 데이터베이스 백업 수행
- 테스트 서버에서 1회 이상 이전 연습 권장(DB는 손상 시 복구가 매우 어렵다)