WEVA Güncellemesi
WEVA hizmetlerini yükseltirken cihaz konfigürasyonlarını ve geçmiş verileri korumak için bu öğreticiyi izleyin.
1. Mevcut Verileri Yedekleyin
Herhangi bir güncelleme yapmadan önce, eski sürümü kullanıyorsanız, veri kaybını önlemek için veritabanı verilerini yedeklemek kritik önem taşır.
Linux ve Mac
update.shadında bir dosya oluşturun.- Aşağıdakileri dosyaya kopyalayın 👇:
#!/usr/bin/env bash
# Bir komut sıfır olmayan bir durum koduyla çıkarsa hemen çık
set -e
# --- YAPILANDIRMA ---
CONTAINER_NAME="mysql-db" # MySQL konteynerinizin adı
DB_USER="root" # MySQL Kullanıcısı
DB_PASSWORD="mypassword" # MySQL Şifresi
DB_NAME="wagopa" # Yedeklenecek veritabanı
BACKUP_DIR="./db_dumps" # Yedeği saklayacak yerel dizin
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="${BACKUP_DIR}/backup_${DB_NAME}_${TIMESTAMP}.sql"
echo "🔄 Temiz konteyner güncelleme iş akışı başlatılıyor..."
# 1. Yedek dizininin var olduğundan emin olun
mkdir -p "$BACKUP_DIR"
# 2. Veritabanı Yedeklemesi (Güvenlik Mekanizması)
echo "💾 MySQL veritabanı yedekleniyor..."
if docker exec "$CONTAINER_NAME" mysqldump -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "$BACKUP_FILE"; then
echo "✅ Yedek başarıyla kaydedildi: $BACKUP_FILE"
else
echo "❌ KRİTİK: MySQL yedeği başarısız! Sistem bütünlüğünü korumak için güncelleme iptal ediliyor."
exit 1
fi
# 3. Yeni İmajları Çek (Hazırlama)
echo "📥 En son konteyner imajları çekiliyor..."
docker compose pull
# 4. Temiz Kapatma
echo "🛑 Eski konteyner yığını kapatılıyor..."
docker compose down
# 5. Güncellenmiş Yığını Başlat
echo "🚀 Güncellenmiş konteynerler başlatılıyor..."
docker compose up -d
echo "🎉 Temiz güncelleme başarıyla tamamlandı!"
- Dosyanın çalıştırılabilir olduğundan emin olmak için terminalde çalıştırın:
chmod +x update.sh
Windows
update.ps1adında bir dosya oluşturun.- Aşağıdakileri dosyaya kopyalayın 👇:
# --- YAPILANDIRMA ---
$ContainerName = "mysql-db" # MySQL konteynerinizin adı
$DbUser = "root" # MySQL Kullanıcısı
$DbPassword = "mypassword" # MySQL Şifresi
$DbName = "wagopa" # Yedeklenecek veritabanı
$BackupDir = "./db_dumps" # Yedeği saklayacak yerel dizin
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$BackupFile = "$BackupDir/backup_${DbName}_${Timestamp}.sql"
Write-Host "🔄 Temiz konteyner güncelleme iş akışı başlatılıyor..." -ForegroundColor Cyan
# 1. Yedek dizininin var olduğundan emin olun
if (-not (Test-Path $BackupDir)) {
New-Item -ItemType Directory -Path $BackupDir | Out-Null
}
# 2. Veritabanı Yedeklemesi (Güvenlik Mekanizması)
Write-Host "💾 MySQL veritabanı yedekleniyor..." -ForegroundColor Yellow
# Docker-to-PowerShell CLI akışında hataları doğru bir şekilde yakalamak için --resultvariable kullanıyoruz
docker exec $ContainerName mysqldump -u"$DbUser" -p"$DbPassword" "$DbName" 2>$null | Out-File -FilePath $BackupFile -Encoding utf8
if ($LASTEXITCODE -eq 0) {
Write-Host "✅ Yedek başarıyla kaydedildi: $BackupFile" -ForegroundColor Green
} else {
Write-Host "❌ KRİTİK: MySQL yedeği başarısız! Sistem bütünlüğünü korumak için güncelleme iptal ediliyor." -ForegroundColor Red
# Dump başarısız olursa boş veya bozuk dosyayı temizleyin
if (Test-Path $BackupFile) { Remove-Item $BackupFile }
exit 1
}
# 3. Yeni İmajları Çek (Hazırlama)
Write-Host "📥 En son konteyner imajları çekiliyor..." -ForegroundColor Yellow
docker compose pull
# 4. Temiz Kapatma
Write-Host "🛑 Eski konteyner yığını kapatılıyor..." -ForegroundColor Yellow
docker compose down
# 5. Güncellenmiş Yığını Başlat
Write-Host "🚀 Güncellenmiş konteynerler başlatılıyor..." -ForegroundColor Green
docker compose up -d
Write-Host "🎉 Temiz güncelleme başarıyla tamamlandı!" -ForegroundColor Green
PowerShell'de çalıştırma izni vermek için bunu terminalde çalıştırın:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
2. Güncelleme Sonrası Kontroller
- WEVA panosunun altbilgisinde sürüm numarasını doğrulayın.
- Herhangi bir migration hatası için günlükleri kontrol edin:
docker logs weva
Ekran Görüntüsü: Başarılı konteyner oluşturma ve başlatmayı gösteren terminal çıktısı.