uchill/backend/BACKEND.md

3.9 KiB
Raw Permalink Blame History

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

Порядок при первом развёртывании

  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 часто не нужен при обычном перезапуске.