3.9 KiB
3.9 KiB
Backend (Django): миграции, суперпользователь, команды
Краткая инструкция по типичным операциям с бэкендом платформы.
Через Docker (рекомендуется на сервере)
Все команды выполняйте из каталога проекта (/var/www/platform/prod). Сервис Django в compose называется web.
Миграции
# Применить все миграции
docker compose -p platform exec web python manage.py migrate
# Создать миграции по изменениям в моделях (после правок в models.py)
docker compose -p platform exec web python manage.py makemigrations
# Создать миграции для конкретного приложения
docker compose -p platform exec web python manage.py makemigrations app_name
# Показать список миграций и их статус
docker compose -p platform exec web python manage.py showmigrations
После изменения моделей: сначала makemigrations, затем migrate.
Суперпользователь (админ)
# Создать суперпользователя (интерактивно запросит email и пароль)
docker compose -p platform exec web python manage.py createsuperuser
# Сменить пароль существующего пользователя
docker compose -p platform exec web python manage.py changepassword <email_или_username>
Доступ в админку: https://api.uchill.online/admin/ (логин/пароль суперпользователя).
Сбор статики
# Собрать статические файлы в STATIC_ROOT (для production)
docker compose -p platform exec web python manage.py collectstatic --noinput
Django shell
# Обычный shell
docker compose -p platform exec web python manage.py shell
# Shell с автоматическим импортом моделей (если установлен django-extensions)
docker compose -p platform exec web python manage.py shell_plus
Другие полезные команды
# Проверка конфигурации
docker compose -p platform exec web python manage.py check
# Список всех команд
docker compose -p platform exec web python manage.py help
Локально (без Docker)
Из каталога backend (/var/www/platform/prod/backend). Нужны: Python 3, установленные зависимости, переменные окружения (или .env с DATABASE_URL и т.д.).
cd /var/www/platform/prod/backend
# Виртуальное окружение (если используется)
# source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
# Миграции
python manage.py makemigrations
python manage.py migrate
# Суперпользователь
python manage.py createsuperuser
# Статика
python manage.py collectstatic --noinput
# Запуск сервера разработки
python manage.py runserver 0.0.0.0:8000
Порядок при первом развёртывании
- Запустить контейнеры:
docker compose -p platform up -d - Применить миграции:
docker compose -p platform exec web python manage.py migrate - Создать суперпользователя:
docker compose -p platform exec web python manage.py createsuperuser - При необходимости:
docker compose -p platform exec web python manage.py collectstatic --noinput
В текущем docker-compose при старте сервиса web уже выполняется migrate в command, поэтому шаг 2 часто не нужен при обычном перезапуске.