# Shopware Umzug - Dateien mit Umlauten

**URL:** <https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732>\
**Category:** Shopware 6 (German)\
**Created:** [16. April 2024 um 16:33 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732 "2024-04-16T16:33:51Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![PromoID](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/promoid/32/14015_2.png) [@PromoID](https://forum.shopware.com/u/PromoID)\
**Post date:** [16. April 2024 um 16:33 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/1 "2024-04-16T16:33:51Z")

</div>

Weiß zufällig jemand wie man beim Datentransfer zwischen zwei Servern am besten mit Umlauten umgeht?  
Wir haben gerade einen Shop bei dem viele Bilder ein „ü“ (…blüte.jpg) haben.  
Egal ob ich die Daten per SSH rsync oder scp verschicke, zippe und dann auf dem Zielserver entzippe,…die Dateien werden immer umbenannt…nur wenn ich die Dateien „einzeln“ über FileZilla hochlade, klappt es - aber das ist bei mehr als 500 Bildern in diversen Ordnern etwas „aufwendig“.

Jemand eine Idee oder Anleitung wie das mit den Datenübertragungen am besten abläuft?

---

<div class="post-metadata">

**Author:** ![MBDealer](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/mbdealer/32/27217_2.png) [@MBDealer](https://forum.shopware.com/u/MBDealer)\
**Post date:** [16. April 2024 um 17:33 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/2 "2024-04-16T17:33:38Z")

</div>

Das liegt in der Regel daran, dass beide Server unterschiedliche Zeichensätze haben, du kannst dir mal den Paramenter -iconv von rsync anschauen, damit kannst du vorher definieren von welchem Zeichensatz zu welchem Zeichensatz konvertiert werden soll.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [16. April 2024 um 19:01 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/3 "2024-04-16T19:01:52Z")

</div>

> [@PromoID](#):
>
> Jemand eine Idee oder Anleitung wie das mit den Datenübertragungen am besten abläuft?

Als angemessene Bestrafung für solche Dateinamen sollte man die Bilder Pixel für Pixel manuell übertragen müssen 😂

Falls alle Stricke reisen, über die Konsole per Bash Script nach Dateinamen mit Sonderzeichen suchen und dann automatisch umbenennen.

Aber das mit dem Zeichensatz im vorherigen Kommentar hört sich sehr zielführend an.

---

<div class="post-metadata">

**Author:** ![PromoID](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/promoid/32/14015_2.png) [@PromoID](https://forum.shopware.com/u/PromoID)\
**Post date:** [16. April 2024 um 19:51 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/4 "2024-04-16T19:51:26Z")

</div>

Oh super! Das war schon mal ein guter Hinweis.

Jetzt weiß ich schon mal das der Quellserver ANSI\_X3.4-1968 und der Zielserver UTF-8 benutzen.  
Dann muss ich mir nur noch ein wenig Wissen über das -iconv aneignen ^^

Soweit ich es verstehe müsste es wie folgt aussehen:

```auto
rsync -av --iconv=ANSI_X3.4-1968,utf-8 Quelle Ziel

```

Kann das jemand bestätigen oder korrigieren? Wäre echt nett 🙂

@Max_Shop leider kommt sowas hin und wieder mal vor. ^^ Kannst du mir das mit dem Bash Script erkäutern? Ich würde diese Dateien so oder so mal gerne umbenennen.

---

<div class="post-metadata">

**Author:** ![MBDealer](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/mbdealer/32/27217_2.png) [@MBDealer](https://forum.shopware.com/u/MBDealer)\
**Post date:** [16. April 2024 um 20:09 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/5 "2024-04-16T20:09:06Z")

</div>

Mit dem Parameter „–dry-run“ oder kurz „-n“ kannst du es simulieren ohne das wirklich etwas übertragen wird.

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [17. April 2024 um 06:05 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/6 "2024-04-17T06:05:25Z")

</div>

> [@PromoID](#):
>
> nur wenn ich die Dateien „einzeln“ über FileZilla hochlade, klappt es - aber das ist bei mehr als 500 Bildern in diversen Ordnern etwas „aufwendig“.

Häää? Was ist daran aufwendig, wenn man im FileZilla mehrere Dateien oder sogar Ordner markiert und hochlädt? 500 Bilder ist in sehr wenigen Minuten erledigt 🙂

---

<div class="post-metadata">

**Author:** ![PromoID](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/promoid/32/14015_2.png) [@PromoID](https://forum.shopware.com/u/PromoID)\
**Post date:** [17. April 2024 um 11:24 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/7 "2024-04-17T11:24:40Z")

</div>

Keine Ahnung, ich stelle mich gerade etwas blöd an. Die Bilder machen mir eigentlich weniger sorgen, das war mein erster Schritt auf der Suche nach einer Lösung. Ich habe gerade allgemein Probleme.

Das ist schon der 5te Shop den ich „umziehe“ und ich bekomme es einfach nicht hin.

Beim übertragen der Daten via SSH kommt folgende Fehlermeldung:  
`rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1333) [sender=3.2.3]`

Beim übertragen der Datenbank diese:

```auto
`ERROR 1452 (23000) at line 250154: Cannot add or update a child row: a foreign key constraint fails (`werbemittelshopsql1`.`#sql-alter-382-141d8`, CONSTRAINT `fk.document.order_id` FOREIGN KEY (`order_id`, `order_version_id`) REFERENCES `order` (`id`, `version_id`) ON UPDATE CASCADE)`

```

Beim Plugin Tools wird mir noch folgendes angezeigt:

```auto
Cannot check security.json from shopware-static-data (not accessible)
Security Updates (releases.json not accessible)

```

Und der Reiter Cache bei Tools lädt überhaupt nicht 😅

Mein Gefühl sagt mir: Entweder der Shop oder Quellserver haben einen schaden lol

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [17. April 2024 um 19:30 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/8 "2024-04-17T19:30:37Z")

</div>

> [@PromoID](#):
>
> Kannst du mir das mit dem Bash Script erkäutern?

Ich war gerade etwas faul und habe ChatGPT benutzt. Aber du solltest mit dem Code zumindest das Prinzip verstehen:

```auto
#!/bin/bash

# Function to slugify a string
slugify() {
    echo "$1" | iconv -f utf-8 -t ascii//TRANSLIT | sed -E 's/[^a-zA-Z0-9]+/-/g' | sed -E 's/^-+|-+$//g' | tr A-Z a-z
}

# Function to process files in the directory
process_files() {
    local dir="$1"
    local files=$(find "$dir" -type f -iregex '.*\.\(jpg\|jpeg\|png\|gif\|bmp\|svg\|tif\|tiff\|ico\)')
    
    for file in $files; do
        filename=$(basename "$file")
        dirpath=$(dirname "$file")
        new_filename=$(slugify "$filename")
        
        # Check if filename needs to be changed
        if [["$filename" != "$new_filename"]]; then
            mv "$dirpath/$filename" "$dirpath/$new_filename"
            echo "Renamed: $filename -> $new_filename"
        fi
    done
}

# Main script
read -p "Enter directory path: " path

if [! -d "$path"]; then
    echo "Error: Directory not found."
    exit 1
fi

process_files "$path"

echo "Finished processing."

```

Anstatt die Bilder direkt umzubenennen, den Part mit einem Shopware API-Request ersetzt, damit Shopware die Bilder selbst umbenennt und das auch in der Datenbank ändert.

---

<div class="post-metadata">

**Author:** ![PromoID](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/promoid/32/14015_2.png) [@PromoID](https://forum.shopware.com/u/PromoID)\
**Post date:** [17. April 2024 um 19:57 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/9 "2024-04-17T19:57:04Z")

</div>

Super! Danke dir. Damit sollte ich klar kommen ^^

---

<div class="post-metadata">

**Author:** ![PromoID](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/promoid/32/14015_2.png) [@PromoID](https://forum.shopware.com/u/PromoID)\
**Post date:** [18. Mai 2024 um 17:12 UTC](https://forum.shopware.com/t/shopware-umzug-dateien-mit-umlauten/103732/10 "2024-05-18T17:12:38Z")

</div>

> [@PromoID](#):
>
> ```auto
> `ERROR 1452 (23000) at line 250154: Cannot add or update a child row: a foreign key constraint fails (`werbemittelshopsql1`.`#sql-alter-382-141d8`, CONSTRAINT `fk.document.order_id` FOREIGN KEY (`order_id`, `order_version_id`) REFERENCES `order` (`id`, `version_id`) ON UPDATE CASCADE)`
> 
> ```

Mir ist heute eingefallen & aufgefallen das die Fehlermeldung hier ja noch vorhanden ist. Die Kopie lief jetzt ohne Probleme, aber beim erneuten Kopieren der Datenbank (Backup) ist diese Fehlermeldung nochmal aufgetaucht.

`ERROR 1452 (23000) at line 257229: Cannot add or update a child row: a foreign key constraint fails (`werbemittelshopsql1`.`#sql -alter-3f1-4c2e2`, CONSTRAINT `fk.document.order\_id` FOREIGN KEY (`order\_id`, `order\_version\_id`) REFERENCES `order` (` id`, `version\_id`) ON UPDATE CASCADE)`

Soweit ich es verstehe verweisen Einträge der Tabelle „document“ auf Einträge in der Tabelle „order“ die nicht vorhanden sind?

Mit der folgenden SQL-Abfrage konnte ich 21 Einträge finden bei denen die Verknüpfung anscheinend nichts in order findet.

```auto
SELECT DISTINCT `order_id`, `order_version_id`
FROM `document`
WHERE (`order_id`, `order_version_id`) NOT IN (
    SELECT `id`, `version_id`
    FROM `order`
);

```

Ist das alles was die Fehlermeldung sagt?  
Kann man davon ausgehen das dieser Fehler durch das Löschen von Bestellungen kommt?  
Da bisher „keine sonstigen Probleme“ auftreten, muss man sich dann weiter damit beschäftigen?  
Macht es Sinn diese Einträge in document zu entfernen?
