[python] 파이썬 가상환경(virtualenv)을 사용하여 데이터베이스 마이그레이션을 관리하는 방법은 무엇인가요?

소개

데이터베이스 마이그레이션은 애플리케이션의 데이터베이스 스키마 변경을 관리하는 중요한 작업입니다. 이를 효과적으로 관리하기 위해 가상환경(virtualenv)을 사용하는 것이 좋습니다. 가상환경은 파이썬 프로젝트를 독립된 환경으로 분리하여 패키지 의존성 관리를 용이하게 해줍니다.

가상환경 생성

먼저 가상환경을 생성하기 위해 다음 명령을 실행합니다:

python -m venv myenv

myenv는 원하는 가상환경 이름으로 대체하면 됩니다.

가상환경 활성화

가상환경을 생성하면 해당 가상환경을 활성화해야 합니다. Windows와 UNIX 기반 시스템에서 활성화 방법이 다릅니다.

Windows에서는 다음 명령을 사용합니다:

myenv\Scripts\activate

UNIX 기반 시스템에서는 다음 명령을 사용합니다:

source myenv/bin/activate

패키지 설치

가상환경이 활성화된 상태에서 마이그레이션을 관리할 패키지를 설치해야 합니다. 대표적인 패키지로 djangodjango-migrations 패키지가 있습니다. 다음 명령으로 패키지를 설치합니다:

pip install django-migrations

마이그레이션 관리

가상환경이 활성화된 상태에서 다음 명령을 실행하여 데이터베이스 마이그레이션을 관리할 수 있습니다:

python manage.py makemigrations
python manage.py migrate

makemigrations 명령은 애플리케이션의 데이터베이스 변경 사항을 추적하고 마이그레이션 파일을 생성합니다. migrate 명령은 마이그레이션 파일을 실제 데이터베이스에 적용합니다.

예시

가상환경이 활성화된 상태에서 다음 예시 코드를 통해 데이터베이스 마이그레이션 관리를 할 수 있습니다:

from django.db import migrations, models

class Migration(migrations.Migration):

    dependencies = [
        ('app', '0001_initial'),
    ]

    operations = [
        migrations.AddField(
            model_name='mymodel',
            name='myfield',
            field=models.CharField(max_length=100),
        ),
    ]

위 예시 코드는 app 애플리케이션의 mymodel 모델에 myfield 필드를 추가하는 마이그레이션을 정의한 것입니다.

참고 자료