Cấu Hình Kết Nối Cơ Sở Dữ Liệu Đa Nền Tảng trong Django 4

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.

Thẻ: Django mysql PostgreSQL SQLite Oracle

Đăng vào ngày 23 tháng 6 lúc 10:57