# Backend (Django): миграции, суперпользователь, команды Краткая инструкция по типичным операциям с бэкендом платформы. --- ## Через Docker (рекомендуется на сервере) Все команды выполняйте из каталога проекта (`/var/www/platform/prod`). Сервис Django в compose называется **web**. ### Миграции ```bash # Применить все миграции 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`. ### Суперпользователь (админ) ```bash # Создать суперпользователя (интерактивно запросит email и пароль) docker compose -p platform exec web python manage.py createsuperuser # Сменить пароль существующего пользователя docker compose -p platform exec web python manage.py changepassword ``` Доступ в админку: **https://api.uchill.online/admin/** (логин/пароль суперпользователя). ### Сбор статики ```bash # Собрать статические файлы в STATIC_ROOT (для production) docker compose -p platform exec web python manage.py collectstatic --noinput ``` ### Django shell ```bash # Обычный 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 ``` ### Другие полезные команды ```bash # Проверка конфигурации 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` и т.д.). ```bash 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 ``` --- ## Порядок при первом развёртывании 1. Запустить контейнеры: `docker compose -p platform up -d` 2. Применить миграции: `docker compose -p platform exec web python manage.py migrate` 3. Создать суперпользователя: `docker compose -p platform exec web python manage.py createsuperuser` 4. При необходимости: `docker compose -p platform exec web python manage.py collectstatic --noinput` В текущем `docker-compose` при старте сервиса **web** уже выполняется `migrate` в command, поэтому шаг 2 часто не нужен при обычном перезапуске.