이 문서에서는 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를 사용하여 대량 작업을 참조하세요. |