From 6015b62d295cbb2cba3632b3e165a4f22c4e0f4b Mon Sep 17 00:00:00 2001 From: poignatov Date: Thu, 1 Jan 2026 17:04:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B0=20dum?= =?UTF-8?q?p-db.sh=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D1=8B=20=D1=81=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D0=BC=D0=B8=20=D1=85=D0=BE=D1=81=D1=82=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.bak | 63 ------------------------------------------------------ dump-db.sh | 59 +++++++++++++++++++++++++++++++++----------------- 2 files changed, 39 insertions(+), 83 deletions(-) delete mode 100644 .env.bak diff --git a/.env.bak b/.env.bak deleted file mode 100644 index 855e3e0..0000000 --- a/.env.bak +++ /dev/null @@ -1,63 +0,0 @@ -# ============================================ -# Единый файл конфигурации для всех проектов -# Backend и Play-Life-Web -# ============================================ - -# ============================================ -# Database Configuration -# ============================================ -DB_HOST=localhost -DB_PORT=5432 -DB_USER=playeng -DB_PASSWORD=playeng -DB_NAME=playeng - -# ============================================ -# Backend Server Configuration -# ============================================ -# Порт для backend сервера (по умолчанию: 8080) -# В production всегда используется порт 8080 внутри контейнера -PORT=8080 - -# ============================================ -# Play Life Web Configuration -# ============================================ -# Порт для frontend приложения play-life-web -WEB_PORT=3001 - -# ============================================ -# Telegram Bot Configuration (optional) -# ============================================ -# Get token from @BotFather in Telegram: https://t.me/botfather -# To get chat ID: send a message to your bot, then visit: https://api.telegram.org/bot/getUpdates -# Look for "chat":{"id":123456789} - that number is your chat ID -TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here -TELEGRAM_CHAT_ID=123456789 -# Base URL для автоматической настройки webhook -# Примеры: -# - Для production с HTTPS: https://your-domain.com -# - Для локальной разработки с ngrok: https://abc123.ngrok.io -# - Для прямого доступа на нестандартном порту: http://your-server:8080 -# Webhook будет настроен автоматически при старте сервера на: /webhook/telegram -# Если не указан, webhook нужно настраивать вручную -TELEGRAM_WEBHOOK_BASE_URL=https://your-domain.com - -# ============================================ -# Todoist Webhook Configuration (optional) -# ============================================ -# Секрет для проверки подлинности webhook от Todoist -# Если задан, все запросы должны содержать заголовок X-Todoist-Webhook-Secret с этим значением -# Оставьте пустым, если не хотите использовать проверку секрета -TODOIST_WEBHOOK_SECRET= - -# ============================================ -# Scheduler Configuration -# ============================================ -# Часовой пояс для планировщика задач (например: Europe/Moscow, America/New_York, UTC) -# Используется для: -# - Автоматической фиксации целей на неделю каждый понедельник в 6:00 -# - Отправки ежедневного отчёта в 23:59 -# ВАЖНО: Укажите правильный часовой пояс, иначе задачи будут срабатывать в UTC! -# Список доступных часовых поясов: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones -TIMEZONE=Europe/Moscow - diff --git a/dump-db.sh b/dump-db.sh index 314e9a6..081b7f3 100755 --- a/dump-db.sh +++ b/dump-db.sh @@ -65,27 +65,46 @@ echo " Хост: $DB_HOST:$DB_PORT" echo " Пользователь: $DB_USER" echo " Файл: $DUMP_PATH" -# Создаем дамп через docker-compose, если контейнер запущен -if docker-compose ps db 2>/dev/null | grep -q "Up"; then - echo " Используется docker-compose..." - docker-compose exec -T db pg_dump -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH" -elif command -v pg_dump &> /dev/null; then - # Или напрямую через pg_dump, если БД доступна локально - echo " Используется локальный pg_dump..." - PGPASSWORD="$DB_PASSWORD" pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH" -elif command -v docker &> /dev/null; then - # Используем Docker образ postgres для создания дампа - # Используем latest для совместимости с разными версиями сервера - echo " Используется Docker (postgres:latest)..." - # Используем --network host для доступа к удаленным хостам - docker run --rm -i --network host \ - -e PGPASSWORD="$DB_PASSWORD" \ - postgres:latest \ - pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH" +# Создаем дамп через docker-compose, если контейнер запущен И хост локальный +if [ "$DB_HOST" = "localhost" ] || [ "$DB_HOST" = "127.0.0.1" ] || [ -z "$DB_HOST" ]; then + if docker-compose ps db 2>/dev/null | grep -q "Up"; then + echo " Используется docker-compose..." + docker-compose exec -T db pg_dump -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH" + elif command -v pg_dump &> /dev/null; then + # Или напрямую через pg_dump, если БД доступна локально + echo " Используется локальный pg_dump..." + PGPASSWORD="$DB_PASSWORD" pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH" + elif command -v docker &> /dev/null; then + # Используем Docker образ postgres для создания дампа + echo " Используется Docker (postgres:latest)..." + docker run --rm -i --network host \ + -e PGPASSWORD="$DB_PASSWORD" \ + postgres:latest \ + pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH" + else + echo "❌ Ошибка: pg_dump не найден, docker-compose не запущен и Docker недоступен" + echo " Установите PostgreSQL клиент или Docker" + exit 1 + fi else - echo "❌ Ошибка: pg_dump не найден, docker-compose не запущен и Docker недоступен" - echo " Установите PostgreSQL клиент или Docker" - exit 1 + # Для удаленных хостов используем pg_dump или Docker + if command -v pg_dump &> /dev/null; then + echo " Используется локальный pg_dump..." + PGPASSWORD="$DB_PASSWORD" pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH" + elif command -v docker &> /dev/null; then + # Используем Docker образ postgres для создания дампа + # Используем latest для совместимости с разными версиями сервера + echo " Используется Docker (postgres:latest)..." + # Используем --network host для доступа к удаленным хостам + docker run --rm -i --network host \ + -e PGPASSWORD="$DB_PASSWORD" \ + postgres:latest \ + pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH" + else + echo "❌ Ошибка: pg_dump не найден и Docker недоступен" + echo " Установите PostgreSQL клиент или Docker" + exit 1 + fi fi # Сжимаем дамп