DATABASES
¶기본값: {}
(빈 딕셔너리)
Django와 함께 사용할 모든 데이터베이스 설정을 포함하는 딕셔너리입니다. 이는 개별 데이터베이스의 옵션을 담고 있는 딕셔너리로 이루어진 중첩된 딕셔너리입니다.
DATABASES
설정은 반드시 default
데이터베이스를 구성해야 합니다. 여러 개의 추가 데이터베이스도 지정할 수 있습니다.
가장 간단한 설정 파일은 SQLite를 사용하는 단일 데이터베이스 설정입니다. 다음과 같이 구성할 수 있습니다:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": "mydatabase",
}
}
MariaDB, MySQL, Oracle 또는 PostgreSQL과 같은 다른 데이터베이스 백엔드에 연결하는 경우 추가 연결 매개변수가 필요합니다. 다음은 PostgreSQL의 예입니다:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": "mydatabase",
"USER": "mydatabaseuser",
"PASSWORD": "mypassword",
"HOST": "127.0.0.1",
"PORT": "5432",
}
}
더 복잡한 설정을 위해 필요한 다음과 같은 내부 옵션을 사용할 수 있습니다:
ATOMIC_REQUESTS
¶기본값: False
이 데이터베이스의 각 뷰를 트랜잭션으로 래핑하려면 이 값을 True
로 설정합니다. HTTP 요청에 트랜잭션 매핑을 참조하십시오.
AUTOCOMMIT
¶기본값: True
Django의 트랜잭션 관리를 비활성화하려면 이 값을 False
로 설정하고 직접 구현합니다.
ENGINE
¶기본값: ''
(빈 문자열)
사용할 데이터베이스 백엔드입니다. 내장 데이터베이스 백엔드는 다음과 같습니다:
'django.db.backends.postgresql'
'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'
Django와 함께 제공되지 않는 데이터베이스 백엔드를 사용하려면 ENGINE
을 완전한 경로로 설정합니다(즉, mypackage.backends.whatever
와 같이).
HOST
¶기본값: ''
(빈 문자열)
데이터베이스에 연결할 때 사용할 호스트입니다. 빈 문자열은 로컬호스트를 나타냅니다. SQLite와는 사용되지 않습니다.
이 값이 슬래시로 시작하면 MySQL을 사용하는 경우 MySQL은 지정된 소켓에 대한 Unix 소켓을 통해 연결합니다. 예를 들어:
"HOST": "/var/run/mysql"
MySQL을 사용하고 이 값이 슬래시로 시작하지 않으면 이 값은 호스트로 간주됩니다.
PostgreSQL을 사용하는 경우 기본적으로 (빈 HOST
) 데이터베이스 연결은 UNIX 도메인 소켓을 통해 이루어집니다(pg_hba.conf
의 'local' 행). UNIX 도메인 소켓이 표준 위치에 없는 경우 postgresql.conf
에서 unix_socket_directory
의 동일한 값을 사용하십시오. TCP 소켓을 통해 연결하려면 HOST
를 'localhost' 또는 '127.0.0.1'로 설정하십시오(pg_hba.conf
의 'host' 행). Windows에서는 언제나 HOST
를 정의해야 합니다. UNIX 도메인 소켓을 사용할 수 없습니다.
NAME
¶기본값: ''
(빈 문자열)
사용할 데이터베이스의 이름입니다. SQLite의 경우 데이터베이스 파일의 전체 경로입니다. 경로를 지정할 때 항상 슬래시(/)를 사용하십시오. Windows에서도 슬래시를 사용해야 합니다(예: C:/homes/user/mysite/sqlite3.db
).
CONN_MAX_AGE
¶기본값: 0
데이터베이스 연결의 수명입니다(초 단위 정수). 각 요청의 끝에서 데이터베이스 연결을 닫으
려면 0
을 사용합니다(Django의 기본 동작). 무제한 지속적인 데이터베이스 연결을 위해 None
을 사용합니다.
CONN_HEALTH_CHECKS
¶Django 4.1에서 추가됨.
기본값: False
True
로 설정하면 기존 지속적인 데이터베이스 연결이 각 요청에서 데이터베이스 접근을 수행하기 전에 건강 상태를 확인합니다. 건강 상태 확인에 실패하면 연결은 더 이상 사용할 수 없지만 데이터베이스 서버가 새 연결을 수락하고 제공할 준비가 되어 있을 때에는 요청을 실패시키지 않고 연결이 다시 설정됩니다(예: 데이터베이스 서버 재시작 후 기존 연결 닫기).
OPTIONS
¶기본값: {}
(빈 딕셔너리)
데이터베이스에 연결할 때 사용할 추가 매개변수입니다. 사용 가능한 매개변수는 데이터베이스 백엔드에 따라 다릅니다.
사용 가능한 매개변수에 대한 일부 정보는 데이터베이스 백엔드 문서에서 찾을 수 있습니다. 더 많은 정보는 백엔드 모듈 자체 문서를 참조하십시오.
PASSWORD
¶기본값: ''
(빈 문자열)
데이터베이스에 연결할 때 사용할 암호입니다. SQLite와는 사용되지 않습니다.
PORT
¶기본값: ''
(빈 문자열)
데이터베이스에 연결할 때 사용할 포트입니다. 빈 문자열은 기본 포트를 나타냅니다. SQLite와는 사용되지 않습니다.
TIME_ZONE
¶기본값: None
이 데이터베이스 연결의 시간대를 나타내는 문자열이거나 None
입니다. 이 내부 옵션은 일반 TIME_ZONE
설정과 동일한 값을 허용합니다.
USE_TZ
가 True
이고 이 옵션이 설정된 경우 데이터베이스에서 날짜/시간을 읽을 때 UTC 대신에 이 시간대의 인식된 날짜/시간이 반환됩니다. USE_TZ
가 False
인 경우 이 옵션을 설정하는 것은 오류입니다.
데이터베이스 백엔드가 시간대를 지원하지 않는 경우(예: SQLite, MySQL, Oracle), Django는 이 옵션이 설정되어 있으면 이 옵션에 따라 로컬 시간으로 날짜/시간을 읽고 씁니다. 이 옵션이 설정되어 있지 않으면 UTC 시간대를 사용합니다.
연결 시간대를 변경하면 데이터베이스에서 날짜/시간을 읽고 쓰는 방법이 변경됩니다.
데이터베이스 백엔드가 시간대를 지원하는 경우(예: PostgreSQL), TIME_ZONE
옵션이 매우 드물게 필요할 수 있습니다. 언제든지 변경할 수 있으며 데이터베이스가 원하는 시간대로 날짜/시간을 변환합니다.
데이터베이스 연결의 시간대를 설정하는 것은 데이터베이스에서 제공하는 date_trunc
와 같은 날짜/시간 함수를 사용하는 raw SQL 쿼리를 실행하는 데 유용할 수 있습니다. 결과는 시간대에 따라 달라집니다.
그러나 이에는 단점이 있습니다: 로컬 시간대의 모든 날짜/시간을 받는 것은 날짜/시간 계산을 더 복잡하게 만듭니다. DST 전환 중에 가능한 오프셋 변경을 고려해야 합니다.
TIME_ZONE
옵션을
설정하는 대신 raw SQL 쿼리에서 명시적으로 AT TIME ZONE
을 사용하여 명시적으로 로컬 시간으로 변환하는 것을 고려하십시오.
DISABLE_SERVER_SIDE_CURSORS
¶기본값: False
이 값을 True
로 설정하면 QuerySet.iterator()
에서 서버 측 커서의 사용을 비활성화합니다. 트랜잭션 풀링과 서버 측 커서에서 해당 사용 사례를 설명합니다.
이는 PostgreSQL에만 해당하는 설정입니다.
USER
¶기본값: ''
(빈 문자열)
데이터베이스에 연결할 때 사용할 사용자 이름입니다. SQLite와는 사용되지 않습니다.
TEST
¶기본값: {}
(빈 딕셔너리)
테스트 데이터베이스에 대한 설정을 담고 있는 딕셔너리입니다. 테스트 데이터베이스의 생성과 사용에 대한 자세한 내용은 테스트 데이터베이스를 참조하십시오.
다음은 테스트 데이터베이스 구성 예입니다:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"USER": "mydatabaseuser",
"NAME": "mydatabase",
"TEST": {
"NAME": "mytestdatabase",
},
},
}
TEST
딕셔너리에서 다음 키를 사용할 수 있습니다:
CHARSET
¶기본값: None
테스트 데이터베이스를 생성할 때 사용하는 문자 집합 인코딩입니다. 이 문자열의 값은 데이터베이스로 직접 전달되므로 형식은 백엔드별입니다.
PostgreSQL (postgresql
) 및 MySQL (mysql
) 백엔드에서 지원됩니다.
COLLATION
¶기본값: None
테스트 데이터베이스를 생성할 때 사용할 정렬 순서입니다. 이 값은 백엔드로 직접 전달되므로 형식은 백엔드별입니다.
mysql
백엔드에서만 지원됩니다(자세한 내용은 MySQL 매뉴얼 참조).
DEPENDENCIES
¶기본값: ['default']
(기본값은 default
를 제외한 모든 데이터베이스에 대해), default
는 종속성이 없습니다.
데이터베이스의 생성 순서 종속성입니다. 테스트 데이터베이스의 생성 순서 제어 문서에서 자세한 내용을 확인하십시오.
MIGRATE
¶기본값: True
False
로 설정하면 테스트 데이터베이스를 생성할 때 마이그레이션이 실행되지 않습니다. 이는 MIGRATION_MODULES
에 None
값을 설정하는 것과 유사하지만 모든 앱에 대해 적용됩니다.
MIRROR
¶기본값: None
이 데이터베이스가 테스트 중에 미러링해야 하는 데이터베이스의 별칭입니다. 이는 트랜잭션에 의존하므로 TestCase
대신 TransactionTestCase
내에서 사용해야 합니다.
이 설정은 여러 데이터베이스의 기본/복제 (일부 데이터베이스에서는 마스터/슬레이브로도 알려짐) 구성을 테스트하기 위해 존재합니다. 기본/복제 구성 테스트 문서에서 자세한 내용을 확인하십시오.
NAME
¶기본값: None
테스트 스위트를 실행할 때 사용할 데이터베이스의 이름입니다.
SQLite 데이터베이스 엔진과 함께 기본값(None
)을 사용하는 경우 테스트는 메모리 내 데이터베이스를 사용합니다. 다른 모든 데이터베이스 엔진에 대해 테스트 데이터베이스는 DATABASE_NAME
에 'test_' + DATABASE_NAME
이름을 사용합니다.
테스트 데이터베이스 문서를 참조하십시오.
SERIALIZE
¶기본값: True
기본 테스트 러너가 테스트 실행 전에 데이터베이스를 메모리 내 JSON 문자열로 직렬화할지 여부를 제어하는 부울 값입니다(트랜잭션이 없는 경우 테스트 간에 데이터베이스 상태를 복원하는 데 사용됨). 이 값을 False
로 설정하여 테스트 클래스에 serialized_rollback=True가 없는 경우 생성 시간을 빠르게 할 수 있습니다.
버전 4.0 이후 더 이상 사용되지 않음: 이 설정은 databases
에서 serialized_rollback 옵션이 활성화된 것으로 추론할 수 있기 때문에 더 이상 사용되지 않습니다.
TEMPLATE
¶이것은 PostgreSQL에만 해당하는 설정입니다.
테스트 데이터베이스를 생성하기 위해 사용할 템플릿의 이름입니다(예: 'template0'
).
CREATE_DB
¶기본값: True
이것은 Oracle에만 해당하는 설정입니다.
False
로 설정되면 테스트 시작 시 테스트 테이블 스페이스가 자동으로 생성되지 않거나 테스트 종료 시 삭제되지 않습니다.
CREATE_USER
¶기본값: True
이것은 Oracle에만 해당하는 설정입니다.
False
로 설정되면 테스트 시작 시 테스트 사용자가 자동으로 생성되지 않으며 테스트 종료 시 삭제되지 않습니다.
USER
[¶](https://docs.djangoproject.com/en/4.2/ref/settings/#std-setting-TEST_USER)
기본값: None
이것은 Oracle에만 해당하는 설정입니다.
테스트 실행 중에 사용할 Oracle 데이터베이스에 연결할 때 사용할 사용자 이름입니다. 제공되지 않으면 Django는 USER
에 'test_' + USER
를 사용합니다.
PASSWORD
¶기본값: None
이것은 Oracle에만 해당하는 설정입니다.
테스트 실행 중에 사용할 Oracle 데이터베이스에 연결할 때 사용할 암호입니다. 제공되지 않으면 Django가 무작위 암호를 생성합니다.
ORACLE_MANAGED_FILES
¶기본값: False
이것은 Oracle에만 해당하는 설정입니다.
True
로 설정되면 Oracle Managed Files (OMF) 테이블 스페이스가 사용됩니다. DATAFILE
와 DATAFILE_TMP
는 무시됩니다.
TBLSPACE
¶기본값: None
이것은 Oracle에만 해당하는 설정입니다.
테스트 실행 중에 사용할 테이블 스페이스의 이름입니다. 제공되지 않으면 Django는 USER
에 'test_' + USER
를 사용합니다.
TBLSPACE_TMP
¶기본값: None
이것은 Oracle에만 해당하는 설정입니다.
테스트 실행 중에 사용할 임시 테이블 스페이스의 이름입니다. 제공되지 않으면 Django는 USER + '_temp'
을 사용합니다.
DATAFILE
¶기본값: None
이것은 Oracle에만 해당하는 설정입니다.
TBLSPACE에 사용할 데이터 파일의 이름입니다. 제공되지 않으면 Django는 TBLSPACE + '.dbf'
를 사용합니다.
DATAFILE_TMP
¶기본값: None
이것은 Oracle에만 해당하는 설정입니다.
TBLSPACE_TMP에 사용할 데이터 파일의 이름입니다. 제공되지 않으면 Django는 TBLSPACE_TMP + '.dbf'
를 사용합니다.
DATAFILE_MAXSIZE
¶기본값: '500M'
이것은 Oracle에만 해당하는 설정입니다.
DATAFILE이 허용되는 최대 크기입니다.
DATAFILE_TMP_MAXSIZE
¶기본값: '500M'
이것은 Oracle에만 해당하는 설정입니다.
DATAFILE_TMP가 허용되는 최대 크기입니다.
DATAFILE_SIZE
¶기본값: '50M'
이것은 Oracle에만 해당하는 설정입니다.
DATAFILE의 초기 크기입니다.
DATAFILE_TMP_SIZE
¶기본값: '50M'
이것은 Oracle에만 해당하는 설정입니다.
DATAFILE_TMP의 초기 크기입니다.
DATAFILE_EXTSIZE
¶기본값: '25M'
이것은 Oracle에만 해당하는 설정입니다.
공간이 더 필요할 때 DATAFILE이 확장되는 양입니다.
DATAFILE_TMP_EXTSIZE
¶기본값: '25M'
이것은 Oracle에만 해당하는 설정입니다.
공간이 더 필요할 때 DATAFILE_TMP가 확장되는 양입니다.