Django에서 프로덕션 서버로 데이터베이스를 마이그레이션하는 방법
마이그레이션 파일을 GitHub에 푸시해야 하나요?
모든 개인은 자신만의 관점을 가지고 있습니다. 장고 여행을 시작할 때 가장 좋은 방법이 무엇인지도 혼란스러웠습니다. this answer from을 읽은 후 내 마이그레이션도 푸시하려고 했습니다. 하지만 좋은 방법이 아닌 것 같아서 GitHub에서 마이그레이션을 제거했습니다.
자, 이제 핵심을 단계별로 시작하겠습니다.
1. 데이터베이스 백업 생성
첫 번째 단계는 데이터베이스 백업을 만드는 것입니다. 제 경우에는 PostgreSQL 데이터베이스를 사용하고 있습니다. 백업 파일을 생성하려면 터미널에서 다음 명령을 실행하기만 하면 됩니다.
pg_dump -U postgres -h localhost -d database > db_backup_2022_05_20.sql
where,
postgres
is the database user,localhost
is the database host,database
is the database name anddb_backup_2022_05_20.sql
is the backup file name.
2. Django 모델을 서버로 마이그레이션
이 블로그는 데이터베이스를 마이그레이션하는 방법에 대해서만 다루기 때문에(Django 사이트를 프로덕션으로 게시하는 전체 절차는 아님) 데이터베이스 마이그레이션에만 집중하고 있습니다. 코드를 서버로 가져온 후 첫 번째 단계는 Django 명령을 사용하여 데이터베이스 테이블과 스키마만 마이그레이션하는 것입니다.
# make migrations
python manage.py makemigrations
# migrate models
python manage.py migrate
3. 데이터 마이그레이션
깨끗한 데이터베이스를 사용하여 프로덕션 환경을 초기화하려는 경우 추가 작업이 필요하지 않으므로 좋은 방법입니다. 그러나 개발자 환경에서 프로덕션 환경으로 모든 데이터를 이동하려면 개발 데이터베이스를 복원해야 합니다. 이렇게 하려면 일반적인 방법을 사용하면 외래 키로 인해 오류가 발생하고 데이터 중복 문제도 발생할 수 있습니다. 그러나 이 작업을 방지하고 데이터만 복원하기 위해
psql
는 멋진 명령줄을 제공합니다. 다음을 수행하기만 하면 됩니다.pg_restore -U postgres -h IP -d database --disable-triggers --data-only db_backup_2022_05_12.sql
Where,
postgres
is the database user,ip
is the server IP address,database
is the database name anddb_backup_2022_05_12.sql
is the backup file location. If you want to know more about the pg_restore command, please check this official documentation.
이 단계에서 일부 오류 메시지나 경고가 표시될 수도 있지만 무시해도 됩니다.
4. 다음은?
Django 모델을 업데이트하려면 먼저 개발 환경에서 모델을 테스트할 수 있습니다. 프로덕션에서 이러한 변경 사항을 업데이트하려면 서버에서 아래와 같이 모델을 마이그레이션하기만 하면 됩니다.
# make migrations
python manage.py makemigrations
# migrate models
python manage.py migrate
The migration file from the development and production environment will be different. If you check both databases from development and production, you will find the different data in the
django_migration
table.
축하합니다! 마침내 개발 환경에서 생산 환경으로 모든 데이터와 함께 데이터베이스를 마이그레이션했습니다.
이 블로그가 마음에 드시면 제 YouTube 채널을 구독하여 지원해 주세요.
Reference
이 문제에 관하여(Django에서 프로덕션 서버로 데이터베이스를 마이그레이션하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/iamtekson/how-to-migrate-your-development-database-to-production-in-django-1j86텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)