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

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

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

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