Files
new_lottery_bot/docs/DATABASE_FIX_REPORT.md
Andrew K. Choi 1551b8b29f
Some checks reported errors
continuous-integration/drone/push Build encountered an error
fix: обработка ошибки 'message is not modified' в conduct_lottery_draw_confirm
2025-11-17 15:46:34 +09:00

41 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Отчёт об исправлении ошибки базы данных
## Проблема
```
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`
## Исправление
Применено вручную:
```sql
-- Добавление столбца
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
## Рекомендации
- При развертывании на других серверах убедиться, что все миграции применены корректно
- Рассмотреть возможность добавления проверки целостности схемы БД при запуске