fix: пререндер-шаблоны работали некорректно в prod
This commit is contained in:
@@ -394,40 +394,72 @@ location = /sitemap.xml {
|
||||
## 4) Команда `regenerate_seria_prerender`
|
||||
|
||||
Назначение:
|
||||
- пересобрать pre-render шаблоны для страниц серий (`catalog_seria_info`) в каталоге `seria_info/prepared/`.
|
||||
- пересобрать pre-render шаблоны для **статических данных** страниц серий (`catalog_seria_info`) в каталоге `seria_info/prepared/`.
|
||||
- генерирует **3 типа файлов** для каждой серии (верхняя статья НЕ кешируется, она рендерится динамически из БД):
|
||||
- `{seria_id}_id_static_flaps.html` — схемы открывания
|
||||
- `{seria_id}_id_static_graph.html` — график ввода в эксплуатацию
|
||||
- `{seria_id}_id_static_map_stats.html` — карта + статистика
|
||||
|
||||
Проверка без записи файлов:
|
||||
### Контекст: двухуровневое кеширование
|
||||
|
||||
Система использует двухуровневое кеширование:
|
||||
- **Статический кеш** — дорогостоящие операции (геокоординаты, графики, схемы). Генерируются один раз и сохраняются на диск.
|
||||
- **Динамические данные** — верхняя статья про серию (может редактироваться через админку, видно БЕЗ перезагрузки контейнера) и таблица оконных проёмов (показывает актуальные предложения).
|
||||
|
||||
Подробнее: см. [`CACHE_PRERENDER_SYSTEM.md`](CACHE_PRERENDER_SYSTEM.md)
|
||||
|
||||
### Проверка без записи файлов (dry-run):
|
||||
|
||||
```bash
|
||||
cd /Users/e-serg/PRJ/2022-oknardia
|
||||
poetry run python oknardia/manage.py regenerate_seria_prerender --dry-run
|
||||
```
|
||||
|
||||
Пересборка только отсутствующих файлов:
|
||||
Пересборка только отсутствующих файлов (стандартный запуск):
|
||||
|
||||
```bash
|
||||
cd /Users/e-serg/PRJ/2022-oknardia
|
||||
poetry run python oknardia/manage.py regenerate_seria_prerender
|
||||
```
|
||||
|
||||
Принудительная пересборка всех root-серий:
|
||||
Вывод:
|
||||
```
|
||||
OK seria 210: 3 кеш-файла созданы
|
||||
OK seria 100: 3 кеш-файла созданы
|
||||
...
|
||||
Готово. Обработано: 31. Создано/пересоздано: 31 × 3 файла. Пропущено: 0.
|
||||
```
|
||||
|
||||
Принудительная пересборка всех root-серий (даже если кеш существует):
|
||||
|
||||
```bash
|
||||
cd /Users/e-serg/PRJ/2022-oknardia
|
||||
poetry run python oknardia/manage.py regenerate_seria_prerender --force
|
||||
```
|
||||
|
||||
Выборочная пересборка:
|
||||
Выборочная пересборка (конкретные серии):
|
||||
|
||||
```bash
|
||||
cd /Users/e-serg/PRJ/2022-oknardia
|
||||
poetry run python oknardia/manage.py regenerate_seria_prerender --seria-id 843 --seria-id 2100 --force
|
||||
```
|
||||
|
||||
Когда запускать:
|
||||
- после обновления логики `catalog_seria_info`;
|
||||
- после массового обновления данных серий/окон/квартир;
|
||||
- после очистки `seria_info/prepared/`.
|
||||
### Когда запускать
|
||||
|
||||
- **После первого развертывания** — сгенерировать кеш всех 31 серии один раз.
|
||||
- **После обновления логики `catalog_seria_info`** — изменились параметры графика или карты.
|
||||
- **После изменения координат зданий** — geo-данные обновлены.
|
||||
- **После добавления новых зданий в серию** — карта и список зда<D0B4><D0B0>ий изменились.
|
||||
- **По расписанию** (опционально, если данные по геокоординатам обновляются):
|
||||
```bash
|
||||
0 3 * * 0 cd /Users/e-serg/PRJ/2022-oknardia && poetry run python oknardia/manage.py regenerate_seria_prerender >> /var/log/oknardia-prerender.log 2>&1
|
||||
```
|
||||
|
||||
### Когда НЕ нужна регенерация
|
||||
|
||||
- **При добавлении новых предложений/цен** — таблица окон обновляется при каждом запросе автоматически.
|
||||
- **При редактировании верхней статьи через админку** — она рендерится динамически, кешируется НЕ нужно.
|
||||
- **При изменении наличия/статуса профилей** — рейтинги пересчитываются запросом через `make_rating`.
|
||||
|
||||
## 5) Команда `populate_seo_fields`
|
||||
|
||||
@@ -532,14 +564,14 @@ print(f'Пусто sMetaKeywords: {posts.filter(sMetaKeywords=\"\").count()}')
|
||||
✓ Записей обновлено в БД: 28
|
||||
✗ Ошибок при обработке: 0
|
||||
|
||||
✅ Обновлено 28 записей успешно!
|
||||
Обновлено 28 записей успешно!
|
||||
```
|
||||
|
||||
### Откат и безопасность
|
||||
|
||||
- ✅ **Безопасна для повторного запуска** — пустые поля не изменяются при повторной работе.
|
||||
- ✅ **Откат через SQL** — если нужно очистить, используй: `UPDATE oknardia_blogposts SET sSlug='', sMetaDescription='', sMetaKeywords='';`
|
||||
- ✅ **Всегда используй `--dry-run`** перед первым запуском для проверки.
|
||||
- **Безопасна для повторного запуска** — пустые поля не изменяются при повторной работе.
|
||||
- **Откат через SQL** — если нужно очистить, используй: `UPDATE oknardia_blogposts SET sSlug='', sMetaDescription='', sMetaKeywords='';`
|
||||
- **Всегда используй `--dry-run`** перед первым запуском для проверки.
|
||||
|
||||
## 6) Команда `make_rating`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user