Files
tg_tinder_bot/bin/README.md
Andrew K. Choi 88d9ccd75d fix(database): Исправлены критические ошибки БД - job, state, looking_for
- Добавлена колонка job в profiles (устраняет ошибку column job does not exist)
- Добавлена колонка state в users (устраняет предупреждения State column does not exist)
- Исправлен триггер create_initial_profile() для включения looking_for
- Колонка looking_for сделана nullable с DEFAULT 'both'
- Добавлена колонка interested_in как современный синоним для looking_for
- Созданы индексы для производительности: idx_profiles_job, idx_users_state, idx_profiles_interested_in

Патчи:
- sql/fix_looking_for_column.sql
- sql/add_job_and_state_columns.sql

Утилиты:
- bin/apply_all_patches.sh - автоматическое применение всех патчей

Документация:
- docs/DATABASE_FIXES.md - подробное описание исправлений
- docs/HEALTH_CHECK.md - чеклист проверки здоровья бота
- docs/FIXES_SUMMARY_2025-11-06.md - краткая сводка изменений

Fixes: #job-column-error #state-column-warning #looking-for-constraint
2025-11-06 10:30:35 +09:00

103 lines
3.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.

# Автоматическое обновление Telegram Tinder Bot
Этот документ описывает процесс автоматического обновления бота с помощью созданных скриптов.
## Доступные скрипты
### apply_all_patches.sh
Применяет все SQL патчи к базе данных в правильном порядке:
- Основная схема (consolidated.sql)
- Исправление триггера looking_for
- Добавление колонок job и state
```bash
./bin/apply_all_patches.sh
```
### apply_migrations.sh
Применяет Node.js миграции через node-pg-migrate.
### apply_direct_sql.sh
Применяет SQL файлы напрямую через psql.
## Скрипт обновления
Скрипт обновления выполняет следующие действия:
1. Получает последние изменения из Git-репозитория
2. Устанавливает зависимости
3. Применяет миграции базы данных
4. Собирает проект
5. Проверяет наличие файла .env
6. Проверяет наличие Docker-сервисов
7. При запуске на Ubuntu: проверяет и перезапускает PM2 сервис
## Подробные инструкции по развертыванию
Для подробных инструкций по развертыванию бота на сервере Ubuntu 24.04, пожалуйста, обратитесь к файлу `DEPLOY_UBUNTU.md` в корне проекта.
## Как использовать
### На Linux/macOS:
```bash
# Обновление с ветки main (по умолчанию)
npm run update
# Обновление с определенной ветки
bash ./bin/update.sh develop
# Обновление с определенной ветки и перезапуском сервиса PM2 (для Ubuntu)
bash ./bin/update.sh develop --restart-service
```
### На Windows:
```powershell
# Обновление с ветки main (по умолчанию)
npm run update:win
# Обновление с определенной ветки
.\bin\update.bat develop
```
## Добавление прав на выполнение (только для Linux/macOS)
Если у вас возникают проблемы с запуском скрипта, добавьте права на выполнение:
```bash
chmod +x ./bin/update.sh
```
## Автоматизация обновлений
Для автоматизации регулярных обновлений вы можете использовать cron (Linux/macOS) или Планировщик заданий (Windows).
### Пример cron-задания для Ubuntu (ежедневное обновление в 4:00 с перезапуском сервиса):
```
0 4 * * * cd /opt/tg_tinder_bot && ./bin/update.sh --restart-service >> /var/log/tg_bot_update.log 2>&1
```
### Пример cron-задания (ежедневное обновление в 4:00 без перезапуска):
```
0 4 * * * cd /path/to/bot && ./bin/update.sh
```
### Для Windows:
Создайте задачу в Планировщике заданий, которая запускает:
```
cmd.exe /c "cd /d D:\Projects\tg_tinder_bot && .\bin\update.bat"
```
## Что делать после обновления
После обновления вы можете:
1. Запустить бота: `npm run start`
2. Запустить бота в режиме разработки: `npm run dev`
3. Перезапустить Docker-контейнеры, если используете Docker: `docker-compose down && docker-compose up -d`