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