이 문서는 Django 데이터베이스 백엔드에 대한 mssql-django 완전한 settings.py 구성 참고 자료입니다. SQL Server 연결성을 설정하려면 Django 프로젝트 settings.py 파일의 사전을 DATABASES 편집하세요.
최소 구성
다음 예시는 최소 필요한 구성을 보여줍니다:
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",
},
},
}
데이터베이스 연결 설정
이 설정들이 연결을 DATABASES 구성합니다. 대부분은 표준 Django 설정이며; 예외는 다음과 같습니다:
| 설정 | 유형 | 설명 |
|---|---|---|
ENGINE |
String |
"mssql"이어야 합니다. |
NAME |
String | 데이터베이스 이름 필수 사항입니다. |
HOST |
String | 서버 호스트네임이나 IP 주소. 이름 붙여진 인스턴스는 형식을 사용 "server\\instance" 하세요. |
PORT |
String | 서버 인스턴스 포트. 빈 문자열은 기본 포트를 의미합니다. |
USER |
String | 데이터베이스 사용자 이름입니다. 제공되지 않으면 Windows 통합 보안이 사용됩니다. |
PASSWORD |
String | 데이터베이스 사용자 비밀번호. |
AUTOCOMMIT |
Boolean | Django False 의 트랜잭션 관리를 비활성화하도록 설정하세요. 기본값은 True입니다. |
Trusted_Connection |
String | 제공되지 않을 때 USER Windows 통합 보안을 사용하도록 (기본값)로 "yes" 설정하세요. 와 PASSWORD 가 모두 설정되면 USER 그 자격 증명이 우선시되고 Trusted_Connection 무시됩니다. Windows 인증을 명시적으로 비활성화하도록 설정 "no" 하세요. 이것은 표준 Django 설정이 아니라 확장입니다 mssql-django . |
TOKEN |
String | Microsoft Entra 인증용 액세스 토큰(예: )을 통해 azure.identity사용하려 합니다. 이것은 표준 Django 설정이 아니라 확장입니다 mssql-django . |
테스트 설정
이 설정들은 Django의 테스트 러너가 사용하는 테스트 데이터베이스를 제어합니다:
| 설정 | 유형 | 설명 |
|---|---|---|
NAME |
String | 테스트 데이터베이스 이름. 기본값: "test_" + NAME. |
COLLATION |
String | 테스트 데이터베이스용 정렬. 기본값: 인스턴스 기본값. |
DEPENDENCIES |
List | 데이터베이스의 생성 순서 의존성. |
MIRROR |
String | 테스트 중에 미러링할 데이터베이스의 별칭입니다. |
예제:
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",
},
"TEST": {
"NAME": "test_mydb",
"COLLATION": "SQL_Latin1_General_CP1_CI_AS",
},
},
}
옵션
사전은 OPTIONS 백엔드 전용 구성을 제공합니다. 다음 설정들을 사전 안에 DATABASES["default"]["OPTIONS"] 넣으세요:
| Option | 유형 | 기본값 | 설명 |
|---|---|---|---|
driver |
String | "ODBC Driver 18 for SQL Server" |
ODBC 드라이버를 사용해야 합니다. 드라이버 18이 설치되어 있지 않으면 자동으로 드라이버 17로 되돌아갑니다. |
isolation_level |
String | None |
트랜잭션 격리 수준: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ또는 SNAPSHOTSERIALIZABLE. |
dsn |
String | None |
이름은 DSN입니다. 를 대신 HOST해 사용할 수 있습니다. |
host_is_server |
Boolean | False |
데이터서버 이름 대신 freetds.conf FreeTDS와 직접 사용하도록/PORTHOST설정 True 하세요. |
unicode_results |
Boolean | False |
pyodbc unicode_results 기능을 활성화하세요. |
extra_params |
String | None |
추가 ODBC 매개변수 형식."param=value;param=value"
Microsoft Entra 인증에 사용됩니다. |
collation |
String | None |
텍스트 필드 조회를 위한 정렬(예: "Chinese_PRC_CI_AS"). |
connection_timeout |
Integer | 0 |
연결 타임아웃은 초 간격입니다 (0 = 비활성화). |
connection_retries |
Integer | 5 |
연결 재시도 횟수. |
connection_retry_backoff_time |
Integer | 5 |
재시도 사이에 몇 초 간격으로 물러나세요. |
query_timeout |
Integer | 0 |
쿼리 타임아웃은 초 단위입니다 (0 = 비활성화됨). |
setencoding / setdecoding |
List | None |
pyodbc 인코딩 / 디코딩 구성. |
return_rows_bulk_insert |
Boolean | False |
벌크 인서트에서 반입 행을 허용하세요. 테이블에 트리거가 있다면 그럴 False 거예요. |
datefirst |
Integer | 7 |
주 첫째 날.SET DATEFIRST
7일요일(SQL Server 기본값)이고, 1 월요일입니다. |
driver_needs_utf8 |
존재 전용 옵션 | 설정 안 함 | ODBC 드라이버에 UTF-8 인코딩을 활성화하세요. 이 옵션은 키가 에 OPTIONS존재할 때 활성화됩니다; 그 값 자체는 무시됩니다. 일반적으로 FreeTDS 또는 기본 라틴어 1을 사용하는 구형 유닉스 ODBC 구성에서 필요합니다. |
driver_charset |
String | None |
ODBC 드라이버에 대한 명시적 문자 집합(예: "UTF-8"). 드라이버가 인코딩을 자동 감지하지 않을 때 사용 driver_needs_utf8 하세요. |
connection_recovery_interval_msec |
Float | 0.0 |
네트워크 오류 후 백엔드의 연결 복구 루프에서 재시도 사이에 몇 밀리초가 걸려 기다려야 합니다. 불안정한 네트워크 링크의 경우 이 값을 높입니다. |
일반적인 선택지가 있는 예시:
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>.database.windows.net",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 18 for SQL Server",
"extra_params": "Encrypt=yes",
"isolation_level": "READ COMMITTED",
"connection_timeout": 30,
"connection_retries": 3,
"connection_retry_backoff_time": 5,
"query_timeout": 60,
},
},
}
백엔드 전용 설정
이 설정은 사전 외부 DATABASES 의 settings.py모듈 수준에 위치합니다:
| 설정 | 유형 | 기본값 | 설명 |
|---|---|---|---|
DATABASE_CONNECTION_POOLING |
Boolean | True |
pyodbc False 의 연결 풀링을 비활성화하도록 설정하세요. |
예제:
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",
},
},
}
# Set this to False to disable pyodbc's connection pooling
DATABASE_CONNECTION_POOLING = False