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 !
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.
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.
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 ?
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?
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;
}
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.
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.
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?