67 lines
2.2 KiB
Bash
67 lines
2.2 KiB
Bash
#!/bin/bash
|
||
|
||
# Скрипт для полной пересборки PROD окружения с бэкапом БД
|
||
|
||
set -e
|
||
|
||
echo "=========================================="
|
||
echo "Полная пересборка PROD окружения"
|
||
echo "=========================================="
|
||
echo ""
|
||
echo "⚠️ ВНИМАНИЕ: Это пересоберёт все контейнеры без кэша"
|
||
echo ""
|
||
|
||
cd "$(dirname "$0")"
|
||
|
||
# Шаг 1: Создать бэкап БД
|
||
echo "Шаг 1: Создание бэкапа БД..."
|
||
if [ -f "./backup-all-db.sh" ]; then
|
||
./backup-all-db.sh
|
||
else
|
||
echo "⚠️ Скрипт backup-all-db.sh не найден, создаём бэкап вручную..."
|
||
mkdir -p ./backups
|
||
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||
if docker ps | grep -q platform_prod_db; then
|
||
docker exec platform_prod_db pg_dumpall -U platform_prod_user -c | gzip > "./backups/platform_prod_db_backup_${TIMESTAMP}.sql.gz"
|
||
echo "✓ Бэкап создан: ./backups/platform_prod_db_backup_${TIMESTAMP}.sql.gz"
|
||
else
|
||
echo "⚠️ Контейнер БД не запущен, пропускаем бэкап"
|
||
fi
|
||
fi
|
||
|
||
echo ""
|
||
echo "Шаг 2: Остановка контейнеров..."
|
||
docker compose down
|
||
|
||
echo ""
|
||
echo "Шаг 3: Пересборка образов без кэша..."
|
||
echo "Это может занять несколько минут..."
|
||
docker compose build --no-cache --pull
|
||
|
||
echo ""
|
||
echo "Шаг 4: Запуск контейнеров..."
|
||
docker compose up -d
|
||
|
||
echo ""
|
||
echo "Шаг 5: Ожидание запуска БД..."
|
||
sleep 10
|
||
|
||
echo ""
|
||
echo "Шаг 6: Применение миграций..."
|
||
docker exec platform_prod_web python manage.py migrate
|
||
|
||
echo ""
|
||
echo "Шаг 7: Проверка статуса контейнеров..."
|
||
docker compose ps
|
||
|
||
echo ""
|
||
echo "=========================================="
|
||
echo "✓ Пересборка завершена!"
|
||
echo "=========================================="
|
||
echo ""
|
||
echo "Проверьте логи:"
|
||
echo " docker compose logs -f"
|
||
echo ""
|
||
echo "Если нужно создать суперпользователя:"
|
||
echo " docker exec -it platform_prod_web python manage.py createsuperuser"
|