add: Custom Command Синхронизация s_hash_id с солью
This commit is contained in:
@@ -65,7 +65,34 @@ poetry run python hypn0/manage.py rescore_hypn0_items --dry-run
|
||||
|
||||
---
|
||||
|
||||
## 2. Планируемые команды (Roadmap)
|
||||
## 2. `rehash` — Проверка целостности и перегенерация `s_hash_id`
|
||||
|
||||
- **Путь:** `hypn0/hypn0_site/management/commands/rehash.py`
|
||||
- **Назначение:** Синхронизация публичных коротких хэшей `s_hash_id` в базе данных с текущим значением `HASHIDS_SALT` и `HASHIDS_MIN_LENGTH`.
|
||||
|
||||
### Когда требуется запуск:
|
||||
1. При смене или ротации `HASHIDS_SALT` в `.env` / `settings.py`.
|
||||
2. При переносе/миграции базы данных между разными окружениями (Dev $\rightarrow$ Prod).
|
||||
3. При обнаружении записей с пустыми или устаревшими `s_hash_id`.
|
||||
|
||||
### Базовый запуск:
|
||||
```bash
|
||||
# Тестовая проверка нестыковок (без записи в БД)
|
||||
poetry run python hypn0/manage.py rehash --dry-run
|
||||
|
||||
# Боевая перегенерация
|
||||
poetry run python hypn0/manage.py rehash
|
||||
```
|
||||
|
||||
### Параметры командной строки (CLI):
|
||||
| Флаг | Тип | По умолчанию | Описание |
|
||||
|----------------|--------|--------------|----------------------------------------------------------------|
|
||||
| `--dry-run` | `flag` | `False` | Только проверить нестыковки без изменения базы данных |
|
||||
| `--batch-size` | `int` | `500` | Размер пачки для `bulk_update` (оптимизация памяти и скорости) |
|
||||
|
||||
---
|
||||
|
||||
## 3. Планируемые команды (Roadmap)
|
||||
|
||||
- **`cleanup_storage`** — Удаление старых и низкорейтинговых картин (Smart Retention) при превышении квоты хранилища (использует рассчитанный `f_score`).
|
||||
- **`cleanup_reports`** — Автоматическая изоляция или удаление картин со статусом `SHAMED` после истечения тайм-аута модерации.
|
||||
|
||||
+29
-28
@@ -558,34 +558,35 @@ CLI больше не нужен.
|
||||
|
||||
## Файлы для создания (итого)
|
||||
|
||||
| Файл | Назначение |
|
||||
|-----------------------------------------------------------|------------------------|
|
||||
| `hypn0/manage.py` | Django CLI |
|
||||
| `hypn0/hypn0/__init__.py` | Settings pkg |
|
||||
| `hypn0/hypn0/settings.py` | Конфиг |
|
||||
| `hypn0/hypn0/urls.py` | URL routing |
|
||||
| `hypn0/hypn0/wsgi.py` | WSGI entry |
|
||||
| `hypn0/hypn0/templates/base.html` | Базовый шаблон |
|
||||
| `hypn0/hypn0_site/__init__.py` | App pkg |
|
||||
| `hypn0/hypn0_site/urls.py` | URL app |
|
||||
| `hypn0/hypn0_site/views.py` | Views |
|
||||
| `hypn0/hypn0_site/forms.py` | Forms |
|
||||
| `hypn0/hypn0_site/models.py` | TbHypn0Item, TbVote... |
|
||||
| `hypn0/hypn0_site/services/halftone.py` | Ядро |
|
||||
| `hypn0/hypn0_site/templates/halftone/index.html` | Главная |
|
||||
| `hypn0/hypn0_site/management/commands/rescore_hypn0_items.py` | Скоринг и детекция аномалий |
|
||||
| `hypn0/hypn0_site/management/commands/cleanup_storage.py` | Очистка SmartRetention |
|
||||
| `hypn0/hypn0_site/management/commands/cleanup_reports.py` | Очистка по жалобам |
|
||||
| `_blueprint/management-commands.md` | Документация CLI-команд|
|
||||
| `public/static/css/site.css` | Стили |
|
||||
| `public/static/js/site.js` | JS |
|
||||
| `.env.sample` | Env template |
|
||||
| `Dockerfile` | Сборка |
|
||||
| `docker-compose.local.yml` | Dev |
|
||||
| `docker-compose.prod.yml` | Prod |
|
||||
| `config/nginx/hypn0-app--external-nginx.conf` | Nginx |
|
||||
| `.gitea/workflows/docker-publish.yaml` | CI/CD |
|
||||
| `database/.gitignore` | Игнор БД |
|
||||
| Файл | Назначение |
|
||||
|---------------------------------------------------------------|---------------------------------|
|
||||
| `hypn0/manage.py` | Django CLI |
|
||||
| `hypn0/hypn0/__init__.py` | Settings pkg |
|
||||
| `hypn0/hypn0/settings.py` | Конфиг |
|
||||
| `hypn0/hypn0/urls.py` | URL routing |
|
||||
| `hypn0/hypn0/wsgi.py` | WSGI entry |
|
||||
| `hypn0/hypn0/templates/base.html` | Базовый шаблон |
|
||||
| `hypn0/hypn0_site/__init__.py` | App pkg |
|
||||
| `hypn0/hypn0_site/urls.py` | URL app |
|
||||
| `hypn0/hypn0_site/views.py` | Views |
|
||||
| `hypn0/hypn0_site/forms.py` | Forms |
|
||||
| `hypn0/hypn0_site/models.py` | TbHypn0Item, TbVote... |
|
||||
| `hypn0/hypn0_site/services/halftone.py` | Ядро |
|
||||
| `hypn0/hypn0_site/templates/halftone/index.html` | Главная |
|
||||
| `hypn0/hypn0_site/management/commands/rescore_hypn0_items.py` | Скоринг и детекция аномалий |
|
||||
| `hypn0/hypn0_site/management/commands/rehash.py` | Синхронизация s_hash_id с солью |
|
||||
| `hypn0/hypn0_site/management/commands/cleanup_storage.py` | Очистка SmartRetention |
|
||||
| `hypn0/hypn0_site/management/commands/cleanup_reports.py` | Очистка по жалобам |
|
||||
| `_blueprint/management-commands.md` | Документация CLI-команд |
|
||||
| `public/static/css/site.css` | Стили |
|
||||
| `public/static/js/site.js` | JS |
|
||||
| `.env.sample` | Env template |
|
||||
| `Dockerfile` | Сборка |
|
||||
| `docker-compose.local.yml` | Dev |
|
||||
| `docker-compose.prod.yml` | Prod |
|
||||
| `config/nginx/hypn0-app--external-nginx.conf` | Nginx |
|
||||
| `.gitea/workflows/docker-publish.yaml` | CI/CD |
|
||||
| `database/.gitignore` | Игнор БД |
|
||||
|
||||
## Файлы для модификации
|
||||
|
||||
|
||||
Reference in New Issue
Block a user