- Добавлена колонка 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
103 lines
3.8 KiB
Markdown
103 lines
3.8 KiB
Markdown
# Автоматическое обновление 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`
|