uchill/backend/BACKEND.md

105 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 <email_или_username>
```
Доступ в админку: **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 часто не нужен при обычном перезапуске.