# Быстрая проверка здоровья бота Используйте этот чеклист после развёртывания или обновления бота. ## ✅ Чеклист проверки ### 1. Проверка контейнера ```bash docker compose ps # Ожидается: telegram-tinder-bot в состоянии "running" (healthy) ``` ### 2. Проверка логов (нет критичных ошибок) ```bash docker compose logs bot --tail 50 # ✅ Должно быть: "Bot initialized successfully" # ✅ Должно быть: "Bot username: @your_bot_name" # ❌ НЕ должно быть: "column X does not exist" (критическая ошибка) ``` ### 3. Проверка схемы БД ```bash # Проверка критичных колонок PGPASSWORD='your_password' psql -h host -p 5432 -U user -d db_name << 'EOF' SELECT table_name, column_name, data_type, is_nullable FROM information_schema.columns WHERE table_name IN ('users', 'profiles') AND column_name IN ('state', 'job', 'looking_for', 'interested_in', 'occupation') ORDER BY table_name, column_name; EOF ``` **Ожидаемый результат:** ``` table_name | column_name | data_type | is_nullable ------------+----------------+--------------------+------------- profiles | interested_in | character varying | YES profiles | job | character varying | YES profiles | looking_for | character varying | YES profiles | occupation | character varying | YES users | state | character varying | YES ``` ### 4. Проверка триггера ```bash PGPASSWORD='your_password' psql -h host -p 5432 -U user -d db_name -c \ "SELECT proname FROM pg_proc WHERE proname = 'create_initial_profile';" ``` **Ожидается:** `create_initial_profile` (1 строка) ### 5. Проверка индексов ```bash PGPASSWORD='your_password' psql -h host -p 5432 -U user -d db_name << 'EOF' SELECT indexname FROM pg_indexes WHERE indexname IN ('idx_profiles_job', 'idx_users_state', 'idx_profiles_interested_in'); EOF ``` **Ожидается:** 3 строки с названиями индексов --- ## 🔧 Типичные проблемы и решения ### Проблема: "column job does not exist" **Решение:** ```bash ./bin/apply_all_patches.sh docker compose restart bot ``` ### Проблема: "State column does not exist" (много раз) **Решение:** ```bash PGPASSWORD='password' psql -h host -p 5432 -U user -d db_name \ -c "ALTER TABLE users ADD COLUMN IF NOT EXISTS state VARCHAR(50);" docker compose restart bot ``` ### Проблема: "looking_for violates not-null constraint" **Решение:** ```bash PGPASSWORD='password' psql -h host -p 5432 -U user -d db_name \ -f sql/fix_looking_for_column.sql docker compose restart bot ``` ### Проблема: Бот не запускается (exit code 1) **Диагностика:** ```bash docker compose logs bot --tail 100 # Ищите строки с ERROR или "does not exist" ``` **Решения:** 1. Проверьте `.env` - все переменные DB_* заданы? 2. Проверьте подключение к БД: `PGPASSWORD='password' psql -h host -p 5432 -U user -d db_name -c "SELECT 1;"` 3. Примените все патчи: `./bin/apply_all_patches.sh` 4. Пересоберите контейнер: `make update` --- ## 📊 Быстрая диагностика одной командой ```bash # Создайте alias для удобства alias bot-health='docker compose ps && echo "=== LOGS ===" && docker compose logs bot --tail 20' # Использование bot-health ``` --- ## 🚀 Команды для разработки ```bash # Полное обновление (pull + rebuild + migrate + restart) make update # Применение миграций make migrate # Только перезапуск docker compose restart bot # Пересборка с нуля make clean && make install # Проверка синтаксиса TypeScript npm run build # Запуск в режиме разработки (локально) npm run dev ``` --- ## 📝 Переменные окружения (.env) Обязательные: ```env DB_HOST=192.168.0.102 DB_PORT=5432 DB_NAME=telegram_tinder_bot DB_USERNAME=trevor DB_PASSWORD=your_secure_password TELEGRAM_BOT_TOKEN=your_bot_token JWT_SECRET=your_jwt_secret APP_SECRET=your_app_secret NODE_ENV=production PORT=3000 ``` Опциональные: ```env DEEPSEEK_API_KEY=your_deepseek_key # Для AI фич LOG_LEVEL=info # debug | info | warn | error ``` --- ## 🆘 Экстренное восстановление Если бот полностью сломан: ```bash # 1. Остановить всё docker compose down # 2. Сделать бэкап БД ./bin/backup_db.sh # 3. Откатить к последнему коммиту git reset --hard HEAD # 4. Применить все патчи заново ./bin/apply_all_patches.sh # 5. Пересобрать make install # 6. Запустить docker compose up -d ``` --- **Версия:** 1.0 **Дата:** 2025-11-06 **Для:** Telegram Tinder Bot v2.0