bot dev
This commit is contained in:
@@ -1,17 +1,31 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Загружаем переменные окружения
|
||||
source .env
|
||||
|
||||
BACKUP_DIR="./backups"
|
||||
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
|
||||
FILENAME="backup_${TIMESTAMP}.sql"
|
||||
|
||||
echo "💾 1. Создаём бэкап базы..."
|
||||
mkdir -p $BACKUP_DIR
|
||||
docker compose exec db mysqldump -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "${BACKUP_DIR}/${FILENAME}"
|
||||
echo "✅ Бэкап сохранён: ${BACKUP_DIR}/${FILENAME}"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
# гарантируем, что db поднята
|
||||
docker compose up -d db
|
||||
|
||||
# ждём доступности сервиса (не обязательно, но полезно)
|
||||
# docker compose healthcheck можно добавить в compose, но тут просто пауза:
|
||||
sleep 3
|
||||
|
||||
# Пытаемся mariadb-dump, если нет — mysqldump. Берём MYSQL_* из окружения контейнера.
|
||||
if ! docker compose exec -T db sh -lc 'command -v mariadb-dump >/dev/null 2>&1 || command -v mysqldump >/dev/null 2>&1'; then
|
||||
echo "⚠️ В контейнере нет mariadb-dump/mysqldump. Пропускаю бэкап."
|
||||
else
|
||||
docker compose exec -T db sh -lc '
|
||||
DUMP_BIN=$(command -v mariadb-dump || command -v mysqldump);
|
||||
"$DUMP_BIN" \
|
||||
-h127.0.0.1 \
|
||||
-u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE" \
|
||||
--single-transaction --quick --lock-tables=false
|
||||
' > "${BACKUP_DIR}/${FILENAME}" || echo "⚠️ Бэкап не получился (возможно, ещё пустая БД). Продолжаю..."
|
||||
fi
|
||||
|
||||
echo "📥 2. Получаем обновления из git..."
|
||||
git pull
|
||||
@@ -20,11 +34,10 @@ echo "🔨 3. Собираем контейнеры..."
|
||||
docker compose build
|
||||
|
||||
echo "⬆ 4. Применяем миграции..."
|
||||
docker compose exec django python manage.py migrate
|
||||
docker compose up -d django
|
||||
docker compose exec -T django python manage.py makemigrations && docker compose exec -T django python manage.py migrate
|
||||
|
||||
echo "🔄 5. Перезапускаем сервисы..."
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
|
||||
echo "🎉 Деплой завершён успешно!"
|
||||
echo "✅ Все операции выполнены успешно."
|
||||
@@ -5,7 +5,7 @@ echo "📥 Получаем обновления..."
|
||||
git pull
|
||||
|
||||
echo "🔨 Собираем контейнеры..."
|
||||
docker compose build
|
||||
docker compose build --no-cache
|
||||
|
||||
echo "⬆ Обновляем БД..."
|
||||
docker compose exec django python manage.py migrate
|
||||
|
||||
Reference in New Issue
Block a user