DB Sicherung einspielen


#1

Hallo zusammen,

ich bin am verzweifeln. Ich muss im Zuge einer Provider Änderung mit dem Shop umziehen. Auf der neuen Präsenz ist ein neuer Shop installiert. Jedes Mal wenn ich die DB Sicherung einspiele bekomme ich einen Fehler: #1062 - Duplicate entry ‘oxstart’ for key ‘PRIMARY’

Die oxv_ Tabellen habe ich sicher alle raus gelassen. Das habe ich mehrfach überprüft.

Danke im voraus für ein Tip in die richtige Richtung !


#2

Das ergibt durchaus Sinn:
Wenn der Shop bereits installiert ist, dann gibt’s die Einträge schon in der Datenbank, also können keine doppelten IDs angelegt werden.

In der Regel überträgt man die Datenbank, dann den Shop und anschließend muss man die neuen Datenbankzugangsdaten in der config.inc.php hinterlegen. Eine richtige Installation des Shops auf dem neuen Server passiert dabei nicht.


#3

Ok, interessant.

Hatte mich an der Anleitung orientiert:

Dann versuche ich mal mein Glück auf deiner beschriebenen Weise…


#4

In der Anleitung steht dass die Inhalte der DB durch das Backup ersetzt werden sollen, dazu müssen alle bestehenden Tabellen vor dem Import gelöscht werden.


#5

Habe das aus jetzt so gemacht. Inhalte der DB komplett gelöscht, Import durchgeführt (ohne Fehler),
Dateien kopiert, Config.inc angepasst.

Sowohl Front und Backend nur im Wartungsmodus. Kein Zugang möglich.

$this->blSkipViewUsage = true; ist temporär gesetzt, bringt aber leider keinen Erfolg.

Das Exception Log zeigt:

Unable to load shop config values from database


#6

versuch mal cookies im Browser zu löschen,
wenn es danach nicht funktioniert, prüfe ob die oxconfig Tabelle zufällig leer ist


#7

Leider beides negativ.

Die Daten in der config.inc müssen korrekt sein. Wenn ich die Daten in der DB lösche und die der frischen Installation in die DB importiere klappt es direkt.

Das wäre zwar ja jede Menge Arbeit, aber macht es sinn alle Tabellen einzeln zu exportieren und dann auch einzeln zu importieren um zu sehen wo er aussteigt ?


#8

Welche Version hat der alte Shop denn und hat der frisch installierte Shop die gleiche?


#9

Ich würde bei der Fehlermeldung “Unable to load shop config values from database” im Exception log ansetzen und schauen, in welcher Programmzeile die geworfen wird. Dann kann man die Aktion nachvollziehen und ermitteln, wo genau die Ursache liegt.

Außerdem:
Regel #1 tmp-Ordner löschen
Sanity check: ist die DB, in die importiert wurde, wirklich die gleiche, auf die der Shop zugreift?


#10

Guten Morgen,

Shopversion von ‘beiden’ Shops ist die 6.02


#11

Tmp Order natürlich gelöscht und die DB ist 100% die gleiche auf die der Shop zugreift.

Die Fehlermeldung taucht in der config.php in der Zeile 386 auf: (das ist die mit der Exception Anweisung)

try {
$shopID = $this->getShopId();
$configLoaded = $this->_loadVarsFromDb($shopID);
// loading shop config
if (empty($shopID) || !$configLoaded) {
// if no config values where loaded (some problems with DB), throwing an exception
$exception = new \OxidEsales\Eshop\Core\Exception\DatabaseException(
“Unable to load shop config values from database”,
0,
new \Exception()
);
throw $exception;
}


#12

Die entscheidende Aktion findet in _loadVarsFromDb() statt.
Versuch mal, das dort erzeugte Select-Statement nachzuvollziehen. Das liefert offensichtlich kein Ergebnis, wodurch die Fehlermeldung ausgelöst wird.


#13

Würde ich sehr gerne, aber das übersteigt leider eindeutig meine Fähigkeiten im Umgang mit Datenbanken…


#14

Ich würde zuerst mal prüfen, ob überhaupt Datensätze in oxconfig vorhanden sind (phpMyAdmin).


#15

Ja… (Screenshot anbei)


#16

Die Frage ist warum der alte Shop funktioniert. Die ShopID ist bei Oxid 6 “1” und nicht “oxbaseshop”. Das wird vom Script migrate_ce_5_3_to_6_0_cleanup.sql beim Update gesetzt.


#17

Das Update ist lange her, aber ich meine mich zu erinnern, dass ich so ein Cleanup Script am Ende ausgeführt habe. Soll ich das noch mal auftreiben und ausführen?


#18

Wird nichts anderes übrigbleiben.


#19

Teilerfolg:

Das Script is fehlerfrei durchgelaufen und das Backend ist nun wenigstens schonmal erreichbar !

Das Frontend landet weiterhin im Wartungsmodus.

Im Exception.log taucht nun folgendes auf:

[message Unknown column ‘oxdiscount.oxsort’ in ‘order clause’]


#20

erst alte shop ID, jetzt fehlende Spalten in der DB.
Das spricht irgendwie alles dafür, dass ein Update Script nicht richtig durchgelaufen ist