Охватываемые темы: Поддерживаемые СУБД, Настройка SQLite (по умолчанию), Настройка PostgreSQL, Через переменную окружения (рекомендуется).
Поддерживаемые СУБД
Django поддерживает несколько баз данных из коробки:
| База данных | Пакет | Применение |
|---|---|---|
| SQLite | встроен | разработка |
| PostgreSQL | psycopg2 |
продакшн |
| MySQL/MariaDB | mysqlclient |
продакшн |
| Oracle | cx_Oracle |
корпоратив |
Настройка SQLite (по умолчанию)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
Настройка PostgreSQL
pip install psycopg2-binary
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydb',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
Через переменную окружения (рекомендуется)
pip install dj-database-url
import dj_database_url
DATABASES = {
'default': dj_database_url.config(
default='sqlite:///db.sqlite3',
conn_max_age=600,
)
}
.env:
DATABASE_URL=postgresql://user:pass@localhost/mydb
Несколько баз данных
DATABASES = {
'default': {'ENGINE': 'django.db.backends.postgresql', ...},
'analytics': {'ENGINE': 'django.db.backends.mysql', ...},
}
# Использование
Task.objects.using('analytics').all()
Почему PostgreSQL для продакшна
- Полная поддержка транзакций
- JSON поля (
JSONField) - Полнотекстовый поиск
- Надёжность и масштабирование
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!