Django 4 hỗ trợ kết nối đa dạng hệ quản trị cơ sở dữ liệu (RDBMS) thông qua các backend chuyên dụng. Dưới đây là hướng dẫn cấu hình chi tiết cho từng hệ thống với các tham số tối ưu.
Thiết lập MySQL
Sử dụng backend mysql.connector để kết nối với MySQL. Cấu hình trong tập tin settings.py:
DATABASES = {
'production': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'app_main_db',
'USER': 'db_admin',
'PASSWORD': 'secure_pass_2023',
'HOST': '127.0.0.1',
'PORT': 3306,
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4'
}
}
}
Tham số OPTIONS giúp thiết lập chế độ SQL và bộ ký tự UTF-8 mở rộng. Địa chỉ 127.0.0.1 thay thế cho localhost để tránh xung đột DNS.
Kết nối PostgreSQL
Backend psycopg2 là lựa chọn tối ưu cho PostgreSQL:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'project_data',
'USER': 'postgres_user',
'PASSWORD': 'complex_password!',
'HOST': 'db.internal',
'PORT': 5432,
'CONN_MAX_AGE': 600
}
}
Tham số CONN_MAX_AGE tái sử dụng kết nối trong 10 phút, giảm tải cho hệ thống. Tên host db.internal phù hợp với môi trường mạng nội bộ.
Cấu hình SQLite
Đối với môi trường phát triển, sử dụng SQLite với đường dẫn tuyệt đối:
DATABASES = {
'dev': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/var/data/app_development.sqlite3'
}
}
Đường dẫn tuyệt đối giúp tránh xung đột thư mục khi triển khai. Không cần cấu hình USER/PORT do đặc tính embedded của SQLite.
Tích hợp Oracle
Kết nối Oracle cần chỉ định tường minh trình điều khiển:
DATABASES = {
'enterprise': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'ORCLCDB',
'USER': 'oracle_app',
'PASSWORD': 'enterprise_key',
'HOST': 'oracle-svr',
'PORT': 1521,
'OPTIONS': {
'threaded': True,
'cclass': 'DJANGO_APP'
}
}
}
Tham số cclass trong OPTIONS giúp định danh ứng dụng với Oracle Net Services.
Kết nối SQL Server
Sử dụng trình điều khiển pyodbc với cấu hình tối ưu:
DATABASES = {
'mssql': {
'ENGINE': 'mssql',
'NAME': 'azure_db',
'USER': 'sqladmin@cloud-svr',
'PASSWORD': 'cloud_secure123',
'HOST': 'cloud-svr.database.windows.net',
'PORT': 1433,
'OPTIONS': {
'driver': 'ODBC Driver 18 for SQL Server',
'MARS_Connection': True
}
}
}
Yêu cầu cài đặt trước django-mssql-backend và trình điều khiển ODBC. Tham số MARS_Connection cho phép xử lý đa truy vấn đồng thời.