django-mssql-backend에서 mssql-django로 마이그레이션

이 문서에서는 sql_server.pyodbc 엔진을 사용하던 django-mssql-backend 패키지에서 mssql-django 패키지로 Django 프로젝트를 마이그레이션하는 방법을 설명합니다.

Overview

mssql-django 패키지는 django-mssql-backend의 후속 패키지입니다. pyodbc를 사용하여 SQL Server 위한 Django 데이터베이스 백 엔드를 계속 제공하지만 업데이트된 패키지 이름, 엔진 식별자 및 최신 Django 버전에 대한 지원을 제공합니다.

특징 django-mssql-backend mssql-django
패키지 이름 django-mssql-backend mssql-django
엔진 sql_server.pyodbc mssql
Django 지원 2.2, 3.0, 3.1 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0
유지 관리 주체 Microsoft Microsoft
PyPI pip install django-mssql-backend pip install mssql-django

1단계: Python 패키지 업데이트

이전 패키지를 제거하고 새 패키지를 설치합니다.

pip uninstall django-mssql-backend
pip install mssql-django

requirements.txt 파일을 사용하는 경우 패키지 참조를 바꾸세요:

# Before
django-mssql-backend>=2.8.1

# After
mssql-django>=1.7

2단계: 엔진 업데이트 DATABASE

settings.py에서 ENGINE 값을 sql_server.pyodbc에서 mssql(으)로 변경합니다:

# Before
DATABASES = {
    "default": {
        "ENGINE": "sql_server.pyodbc",
        "NAME": "<your-database>",
        "USER": "<your-username>",
        "PASSWORD": "<your-password>",
        "HOST": "<your-server>",
        "PORT": "1433",
        "OPTIONS": {
            "driver": "ODBC Driver 17 for SQL Server",
        },
    },
}

# After
DATABASES = {
    "default": {
        "ENGINE": "mssql",
        "NAME": "<your-database>",
        "USER": "<your-username>",
        "PASSWORD": "<your-password>",
        "HOST": "<your-server>",
        "PORT": "1433",
        "OPTIONS": {
            "driver": "ODBC Driver 18 for SQL Server",
        },
    },
}

메모

mssql-django v1.7은 기본적으로 ODBC 드라이버 18로 설정됩니다. 옵션에서 명시적으로 driver 지정하여 드라이버 17을 계속 사용할 수 있습니다.

3단계: INSTALLED_APPS 업데이트

INSTALLED_APPS에서 sql_server을 참조하는 경우 업데이트하세요:

# Before
INSTALLED_APPS = [
    "sql_server",
    # ...
]

# After - only needed if using inspectdb
INSTALLED_APPS = [
    "mssql",
    # ...
]

4단계: 구성 확인

빠른 확인을 실행하여 새 백 엔드가 성공적으로 연결되었는지 확인합니다.

python manage.py check
python manage.py showmigrations

5단계: 테스트 도구 모음 실행

프로젝트의 테스트 도구 모음을 실행하여 모든 것이 새 백 엔드에서 작동하는지 확인합니다.

python manage.py test

주의해야 할 주요 변경 내용

Area Change
기본 ODBC 드라이버 v1.7의 기본값은 ODBC Driver 18 for SQL Server이며, 이는 기본적으로 Encrypt=yes를 설정합니다(Driver 17의 기본값은 Encrypt=no였습니다). 에 추가 TrustServerCertificate=yesextra_params하지 않으면 자체 서명되거나 신뢰할 수 없는 인증서가 있는 서버에 대한 연결이 실패합니다. 또는 드라이버 17을 지정하거나 서버에 신뢰할 수 있는 인증서를 설치합니다.
return_rows_bulk_insert 기본값은 False입니다. bulk_create 후에 ID를 반환할 수 있도록 True로 설정합니다. 트리거가 있는 테이블의 경우 False 상태로 유지되어야 합니다. mssql-django를 사용하여 대량 작업을 참조하세요.