Автоматическое обновление Telegram Tinder Bot
Этот документ описывает процесс автоматического обновления бота с помощью созданных скриптов.
Доступные скрипты
apply_all_patches.sh
Применяет все SQL патчи к базе данных в правильном порядке:
- Основная схема (consolidated.sql)
- Исправление триггера looking_for
- Добавление колонок job и state
./bin/apply_all_patches.sh
apply_migrations.sh
Применяет Node.js миграции через node-pg-migrate.
apply_direct_sql.sh
Применяет SQL файлы напрямую через psql.
Скрипт обновления
Скрипт обновления выполняет следующие действия:
- Получает последние изменения из Git-репозитория
- Устанавливает зависимости
- Применяет миграции базы данных
- Собирает проект
- Проверяет наличие файла .env
- Проверяет наличие Docker-сервисов
- При запуске на Ubuntu: проверяет и перезапускает PM2 сервис
Подробные инструкции по развертыванию
Для подробных инструкций по развертыванию бота на сервере Ubuntu 24.04, пожалуйста, обратитесь к файлу DEPLOY_UBUNTU.md в корне проекта.
Как использовать
На Linux/macOS:
# Обновление с ветки main (по умолчанию)
npm run update
# Обновление с определенной ветки
bash ./bin/update.sh develop
# Обновление с определенной ветки и перезапуском сервиса PM2 (для Ubuntu)
bash ./bin/update.sh develop --restart-service
На Windows:
# Обновление с ветки main (по умолчанию)
npm run update:win
# Обновление с определенной ветки
.\bin\update.bat develop
Добавление прав на выполнение (только для Linux/macOS)
Если у вас возникают проблемы с запуском скрипта, добавьте права на выполнение:
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"
Что делать после обновления
После обновления вы можете:
- Запустить бота:
npm run start - Запустить бота в режиме разработки:
npm run dev - Перезапустить Docker-контейнеры, если используете Docker:
docker-compose down && docker-compose up -d