Исправлена логика dump-db.sh для работы с удаленными хостами
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 15s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 15s
This commit is contained in:
63
.env.bak
63
.env.bak
@@ -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<YOUR_BOT_TOKEN>/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 будет настроен автоматически при старте сервера на: <TELEGRAM_WEBHOOK_BASE_URL>/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
|
|
||||||
|
|
||||||
31
dump-db.sh
31
dump-db.sh
@@ -65,15 +65,33 @@ echo " Хост: $DB_HOST:$DB_PORT"
|
|||||||
echo " Пользователь: $DB_USER"
|
echo " Пользователь: $DB_USER"
|
||||||
echo " Файл: $DUMP_PATH"
|
echo " Файл: $DUMP_PATH"
|
||||||
|
|
||||||
# Создаем дамп через docker-compose, если контейнер запущен
|
# Создаем дамп через docker-compose, если контейнер запущен И хост локальный
|
||||||
if docker-compose ps db 2>/dev/null | grep -q "Up"; then
|
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..."
|
echo " Используется docker-compose..."
|
||||||
docker-compose exec -T db pg_dump -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH"
|
docker-compose exec -T db pg_dump -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH"
|
||||||
elif command -v pg_dump &> /dev/null; then
|
elif command -v pg_dump &> /dev/null; then
|
||||||
# Или напрямую через pg_dump, если БД доступна локально
|
# Или напрямую через pg_dump, если БД доступна локально
|
||||||
echo " Используется локальный pg_dump..."
|
echo " Используется локальный pg_dump..."
|
||||||
PGPASSWORD="$DB_PASSWORD" pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH"
|
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
|
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
|
||||||
|
# Для удаленных хостов используем 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 для создания дампа
|
# Используем Docker образ postgres для создания дампа
|
||||||
# Используем latest для совместимости с разными версиями сервера
|
# Используем latest для совместимости с разными версиями сервера
|
||||||
echo " Используется Docker (postgres:latest)..."
|
echo " Используется Docker (postgres:latest)..."
|
||||||
@@ -82,10 +100,11 @@ elif command -v docker &> /dev/null; then
|
|||||||
-e PGPASSWORD="$DB_PASSWORD" \
|
-e PGPASSWORD="$DB_PASSWORD" \
|
||||||
postgres:latest \
|
postgres:latest \
|
||||||
pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH"
|
pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > "$DUMP_PATH"
|
||||||
else
|
else
|
||||||
echo "❌ Ошибка: pg_dump не найден, docker-compose не запущен и Docker недоступен"
|
echo "❌ Ошибка: pg_dump не найден и Docker недоступен"
|
||||||
echo " Установите PostgreSQL клиент или Docker"
|
echo " Установите PostgreSQL клиент или Docker"
|
||||||
exit 1
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Сжимаем дамп
|
# Сжимаем дамп
|
||||||
|
|||||||
Reference in New Issue
Block a user