Datenbank Backup

Hallo zusammen,
ich habe aktuell das Problem, dass ich keine Backups der Datenbank einspielen kann.
Ich habe mehrere Shops und niergends kann ich ein Datenbank backup einspielen. Egal ob ich es per phpmyadmin oder adminer einspiele bzw exportiere, ständig kommt der Fehler:
DROP TABLE IF EXISTS acl_role
#1217 - Cannot delete or update a parent row: a foreign key constraint fails

oder

#3105 - The value specified for generated column ‚order_date‘ in table ‚order‘ is not allowed.

ich raff es einfach nicht…hat hier jemand ne Lösung für mich?
Danke vorab :slight_smile: Gruß,
Domi

Erster Fehler: Möchte per FK auf eine Tabelle verweisen, die noch nicht angelegt ist.

Zweiter Fehler: das SET oder ENUM enthält einen Wert, der nicht zulässig ist.

Hi, danke für deine Antowrt, was meinst du mit FK?

Blockzitat Zweiter Fehler: das SET oder ENUM enthält einen Wert, der nicht zulässig ist.

Leider kann ich damit auch nichts anfangen :confused:
Gruß,
Domi

EDIT: Vielleicht hilft das, mein Problem zu verstehen: Ich exportiere die Datenbank und leere anschließend die bestehende, so das ich quasi eine neue leere Datenbank habe um zu importieren, aber mit gleichem „Namen“. Daher kann ich mir nicht erklären, dass plötzlih Werte in der Tabelle sind, die da nicht hingehören…

Fremdschlüssel

Bspw. ist nur 0 oder 1 erlaubt, 2 aber eingetragen.

Leider ist SQL nicht in zwei Minuten erklärt. Einfach bei Google nach SQL Foreign Key suchen und nach SQL SET bzw. ENUM. Dann wirst du das Problem sicherlich verstehen.

Wenn du die Tabelle nur leerst und nicht löscht, dann musst du darauf achten, dass DROP Table IF EXISTS mit angegeben ist. Ggf. fehlt das.

Super, danke für deine Erklärung, das schaue ich mir an :slight_smile:

Hallo,
für Testzwecke habe ich vor Kurzem das Datum von Bestellungen auf Datenbankebene geändert. Dabei bin ich auch über deinen 2. Fehler gestolpert. Die Spalte order_date der Tabelle order hat als „Extra“ STORED GENERATED. Deswegen kannst du kein INSERT oder UPDATE auf diese Spalte machen.

Wieso sollte man bei STORED kein INSERT oder UPDATE ausführen können? Das hat doch nur Einfluss darauf, ob der Wert bei jedem SELECT oder nur bei INSERT und UPDATE berechnet wird.

Oder täusche ich mich und STORED GENERATED ist eine andere Funktion als STORED?

Okay, Sorry, ich möchte zu dem Thema nichts falsches sagen und kann gerne korrigiert werden.
In meinem Test konnte ich zumindest kein UPDATE auf die Spalte ausführen.
Habe mich nur daran orientiert, was ich dazu gefunden habe:

Generated columns can be referenced in the INSERT, UPDATE, and DELETE statements.
However, VIRTUAL or PERSISTENT (a.k.a. STORED) generated columns cannot be explicitly set to any other values than NULL or DEFAULT.

Ich möchte mich auch noch einmal zu Wort melden :slight_smile:
Ich habe leider mit Google nichts (für mich) verständliches herausbekommen. Was ich jedoch etwas verwirrend finde:
Eigentlich mache ich ja genau das, was in der DOC steht (z.b. für eine Stagingebene). Datenbank exportieren und importieren ohne große Einstellungen vor zu nehmen. Aber ich kann ja auch nicht wirklich viel einstellen…drop+create, insert etc…das habe ich alles schon probiert und komme nicht weiter…vielleicht hat ja noch jemand den ultimativen Tip für mich :slight_smile: dank euch vorab.
Gruß,
Domi

Mit Adminer / PHPMyAdmin gibs immer probleme. Am besten einfach via SSH:

Backup anlegen:

mysqldump -u user -p'pass' --allow-keywords --add-drop-table --complete-insert --quote-names dbname > backup.sql

Backup einspielen:

mysql -u user -p'pass' dbname < backup.sql
1 „Gefällt mir“

Ich sehe deinen Punkt. War etwas unglücklich formuliert :grin:

Wenn anstatt NULL oder DEFAULT im Import andere Daten stehen, dann wirft SQL einen Fehler. Da hast du natürlich recht.

Hi, danke für deinen Tipp,
hab das natürlich direkt ausprobiert…und was soll ich sagen, mein Hoster unterstützt SSH für die Datenbank nicht :sleepy:
gibt es denn noch ein anderes Tool, mit dem ich den Export versuchen kann?
Vielleicht kurz noch ein paar Eckdaten:
Hosting: alfahosting
Datenbank: MySQL und PhpmyAdmin
Gruß,
Domi

Du musst dich nicht per SSH mit deinem SQL-Server verbinden. Ich gehe zumindest nicht davon aus, dass mysql mit nachfolgendem Befehl eine SSH-Verbindung aufbaut.

mysql -h xxx.xxx.xxx.xxx -P port -u username -p database < backup.sql

in deiner Konsole (lokal auf dem Rechner eingeben).

Du meinst in der Eingabeauffordernung? Aber da bekomme ich ja auch keine Verbindung mit der Datenbank…

Steht doch oben. Du musst die Ip bzw. Domain des Datenbank Servers eintragen. (Da wo die xxx.xxx.xxx.xxx stehen.)

Hi, ja das habe ich ja gemacht, aber der externe Datenbank Zugriff ist ja nicht möglich seitens Alfahosting, evtl geht es deswegen nicht…

Auf der Console ist es ja kein externer Zugriff, sondern das ist intern. Das kann nicht gesperrt sein, sonst könnte man auch von Shopware aus nicht auf die Datenbank zugreifen.
Gibt es eine Fehlermeldung, wenn ja welche? Mach evtl. einen Screenshot.

Erstmal danke, dass ihr versucht mir zu helfen und so geduldig seid :slight_smile:
Hm vielleicht reden wir gerade aneinander vorbei: Welche Console ist denn gemeint.

in deiner Konsole (lokal auf dem Rechner eingeben).

ist damit cmd.exe gemeint? Wahrscheinlich nicht und ich habe etwas falsch verstanden, oder?
Oder die php/bin Console von Shopware? :upside_down_face:

Die Kommando-Oberfläche des remote-Rechners auf dem Dein Shopware läuft. Erreichbar über Putty (meistens - oder irgendein anderes Terminalprogramm).

Dort wo man dann auch die Consolenbefehle von Shopware ausführen kann. Das ist gemeint.