Files
new_lottery_bot/DATABASE_FIX_REPORT.md
Andrey K. Choi 4a741715f5
Some checks reported errors
continuous-integration/drone/push Build encountered an error
feat: Полный рефакторинг с модульной архитектурой
- Исправлены критические ошибки callback обработки
- Реализована модульная архитектура с применением SOLID принципов
- Добавлена система dependency injection
- Создана новая структура: interfaces, repositories, components, controllers
- Исправлены проблемы с базой данных (добавлены отсутствующие столбцы)
- Заменены заглушки на полную функциональность управления розыгрышами
- Добавлены отчеты о проделанной работе и документация

Архитектура готова для production и легко масштабируется
2025-11-17 05:34:08 +09:00

1.8 KiB
Raw Blame History

Отчёт об исправлении ошибки базы данных

Проблема

sqlalchemy.exc.ProgrammingError: column participations.account_id does not exist

Причина

Миграция 003 не была применена корректно - столбец account_id не был добавлен в таблицу participations, хотя модель SQLAlchemy ожидала его наличие.

Диагностика

  1. Проверка миграций: alembic current показал версию 005 (head)
  2. Проверка структуры таблицы: В таблице participations отсутствовал столбец account_id
  3. Проверка внешних ключей: Отсутствовал FK constraint на accounts.id

Исправление

Применено вручную:

-- Добавление столбца
ALTER TABLE participations ADD COLUMN account_id INTEGER;

-- Добавление внешнего ключа
ALTER TABLE participations 
ADD CONSTRAINT fk_participations_account_id 
FOREIGN KEY (account_id) REFERENCES accounts(id) 
ON DELETE SET NULL;

Результат

  • Столбец account_id добавлен
  • Внешний ключ настроен
  • Бот запустился без ошибок
  • Создание розыгрышей должно работать корректно

Дата исправления

16 ноября 2025 г. 20:54

Рекомендации

  • При развертывании на других серверах убедиться, что все миграции применены корректно
  • Рассмотреть возможность добавления проверки целостности схемы БД при запуске