# Environment
Als Umgebung kommt [DDEV](https://ddev.com/) zum Einsatz.
Die [Get Started](https://ddev.com/get-started/) Anleitung befolgen.

---

# Ablauf
- [ ] Altes Update Projekt/Ordner in DDEV löschen
- [ ] Neues Update Projekt vorbereiten
- [ ] Live Umgebung
	- [ ] Wartungsmodus aktivieren
	- [ ] Backups
		- [ ] DB
		- [ ] Daten
	- [ ] Backups runterladen
- [ ] Local Umgebung vorbereiten
- [ ] Updates durchführen
- [ ] Funktion testen
- [ ] Local -> Live
- [ ] Funktionalität prüfen
- [ ] Wartungsmodus deaktivieren
- [ ] Cache löschen
- [ ] 

---

## 1. Altes Update löschen

Im Projekt Verzeichnis aufrufen:
```
ddev delete
```

Ordner löschen

```
rm -rf ~/dev/shopware/*
```

---

## 2. Neues Update vorbereiten

Anleitung im [Get Started](https://ddev.com/get-started/) befolgen

Ordner erstellen:
```
mkdir -p ~/dev/shopware && cd ~/dev/shopware
```

Initialisieren
```
ddev config
```

Doc root auf setzten
```
public
```

Starten:
```
ddev start
```

---

## 3. Live Umgebung

Wartungsmodus, Backups erstellen (Daten und DB).
Backups runterladen.
Backup Datei in wsl kopieren Pfad:
```
cd /dev
```

---

## 4. Update lokal vorbereiten

Ordner erstellen als Ziel
```
mkdir backup
```

Backup extrahieren
```
tar -xf backup.tar -C ~/dev/backup
```

Daten aus Subfolder noch oben bewegen
```
mv lodner.shop/ ..
```

Subfolder löschen
```
rm -r backup
```

Neustarten
```
ddev restart
```

Lokale Sicherung erstellen
```
cp -r lodner.shop/ lodner.shop2/
```

### Datenbank importieren:
.sql Datei aus .zip extrahieren
```
ddev import-db --file=/mnt/c/Users/matth/Downloads/GHL26495_sw6_2026-05-22_00-38-14.sql
```

### .env anpassen
Datei
```
nano .env
```

Anzupassen:
```
DATABASE_URL=mysql://db:db@db:3306/db
```

PHPMyAdmin (wenn benötigt)
```
ddev phpmyadmin
```

Neustarten
```
ddev restart
```

---

## 5. Lokales Update

### Vorbereitung
In Verzeichnis wechseln
```
cd ~/dev/shopware/public
```

Updater runterladen (prüfen ob notwendig)
```
ddev exec wget https://github.com/shopware/web-installer/releases/latest/download/shopware-installer.phar.php
```

### Version festlegen

```
nano /dev/shopware/composer.json
```

Einträge die angepasst werden müssen:
```
"shopware/administration": "6.7.10.1",
"shopware/core": "6.7.10.1",
"shopware/elasticsearch": "6.7.10.1",
"shopware/storefront": "6.7.10.1",
```

### Update
[Changelogs](https://www.shopware.com/de/changelog/)

Anleitung von [Shopware](https://docs.shopware.com/en/shopware-6-en/update-guides/updating-shopware#update-with-composer) befolgen

```
ddev exec php bin/console system:update:prepare
```

```
ddev composer update
```

```
ddev exec php bin/console system:update:finish
```

```
ddev composer recipes:update
```

### Testen
Prüfen ob alles funktioniert

---

## Local -> Live

.env Dateien nicht mit packen
### Dateien
Ziped alles im aktuellen Verzeichnis
```
zip -r updated.zip . -x .env public/media/\* public/thumbnail/\* var/cache/\*
```

```
zip -r updated.zip . -x .env  var/cache/\*
```

### Datenbank
```
ddev export-db --file=update-db.sql.gz
```

Anschließend alles auf Liveumgebung hochladen.
Ggf. DATABASE_URL in .env ersetzten
Auf Funktionalität prüfen
