[0.9.15] - 2025-08-30
All checks were successful
Deploy on push / deploy (push) Successful in 5m42s

### 🔧 Fixed
- **🧾 Database Table Creation**: Унифицирован подход к созданию таблиц БД между продакшеном и тестами
  - Исправлена ошибка "no such table: author" в тестах
  - Обновлена функция `create_all_tables()` в `storage/schema.py` для использования стандартного SQLAlchemy подхода
  - Улучшены фикстуры тестов с принудительным импортом всех ORM моделей
  - Добавлена детальная диагностика создания таблиц в тестах
  - Добавлены fallback механизмы для создания таблиц в проблемных окружениях

### 🧪 Testing
- Все RBAC тесты теперь проходят успешно
- Исправлены фикстуры `test_engine`, `db_session` и `test_session_factory`
- Добавлены функции `ensure_all_tables_exist()` и `ensure_all_models_imported()` для диагностики

### 📝 Technical Details
- Заменен подход `create_table_if_not_exists()` на стандартный `Base.metadata.create_all()`
- Улучшена обработка ошибок при создании таблиц
- Добавлена проверка регистрации всех критических таблиц в metadata
This commit is contained in:
2025-08-30 22:20:58 +03:00
parent e1b0deeac0
commit 7325cdc5f5
5 changed files with 95 additions and 90 deletions

8
cache/precache.py vendored
View File

@@ -77,10 +77,6 @@ async def precache_topics_followers(topic_id: int, session) -> None:
followers_payload = fast_json_dumps(list(topic_followers))
await redis.execute("SET", f"topic:followers:{topic_id}", followers_payload)
# Логируем только если количество фолловеров равно 0
if len(topic_followers) == 0:
logger.debug(f"Topic #{topic_id} has 0 followers")
except Exception as e:
logger.error(f"Error precaching followers for topic #{topic_id}: {e}")
# В случае ошибки, устанавливаем пустой список
@@ -230,9 +226,7 @@ async def precache_data() -> None:
topics_with_zero_followers.append(topic_slug)
if topics_with_zero_followers:
logger.info(f"📋 Топики с 0 фолловерами ({len(topics_with_zero_followers)}):")
for slug in sorted(topics_with_zero_followers):
logger.info(f"{slug}")
logger.info(f"📋 Топиков с 0 фолловерами: {len(topics_with_zero_followers)}")
else:
logger.info("Все топики имеют фолловеров")