Shop Kopie - Oxid Shop umziehen lassen

Hallo
Ich breche mir schon sein längerem die Finger an meinem LAUFENDEN (aber wohl trotzdem nicht sauber installierten Shop aktuel 6.2.4), den ich gerne zudem umziehen lassen möchte (Providerwechsel).

Mein Plan ist also zunächst saubere Version beim bisherigen Hoster erreichen, dann umziehen.
Ich habe mich hierbei an:

orientiert.

Bevor ich mich an das Update des Live-Systems wage, würde ich gerne eine Shop-Kopie machen.

  • Ich deaktiviere also den Shop

  • deaktiviere alle Module

  • mache mit phpmyadmin eine Sicherung der Datenbank (ohne oxv_…)

  • sichere mit WinSCP die Verzeichnisstruktur (binär)

  • lösche hier bereits den Inhalt des /tmp – Verzeichnisses und alle .htaccess

  • ändere in der config.inc.php
    – DantenbankName
    – DatenbankUser
    – DatenbankPasswort
    – ShopVerzeichnisse

  • lade alle Dateien in das neue Verzeichnis

  • importiere die Datenbanksicherung in die neune Datenbank.

Ist das alles bis dahin richtig? Denn wenn ich jetzt das Backend aufrufen will kommt der maintanance-mode.

Sollte alles soweit stimmen. Wenn die Views entfernt sind, können Sie bei der ersten Inbetriebnahme auch nicht verwendet werden.

Schau in die Logs /log/

okay, das probiere ich. …
-oh steht bereits auf true.

  • schau nach dem log

Dann steht vielleicht im Log, was ihm nicht passt.

Okay log:
[08 Nov 16:22:32.898746 2021] [uncaught error] [type E_ERROR] [file /…/test/vendor/oxid-esales/oxideshop-ce/source/Core/Database/Adapter/Doctrine/Database.php] [line 954] [code ] [message Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘dbXXXXX.oxv_oxshops_de’ doesn’t exist in /…/test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:125
Stack trace:
#0 /…/test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(125): PDO->query()
#1 /…/test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOQueryImplementation.php(36): Doctrine\DBAL\Driver\PDOConnection->doQuery()
#2 /…/test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1260): Doctrine\DBAL\Driver\PDOConnection->query()
#3 /…/test/vendor/oxid-esales/oxideshop-ce/source/Core/Database/Adapter/Doctrine/Database.php(608): Doctrine\DBAL\Connection->executeQuery()
#4 /…/test/vendor/oxid-esales/oxideshop-ce/source/Core/Model/BaseMod]

Also irgendetwas scheint ihm doch mit den views nicht zu gefallen. bzw. was will er denn mit dem vendorverzeichnis?

Im vendor liegt der Shop. Dann solltest blSkipViewUsage nochmal kontrollieren. Für gewöhnlich ist das auf false. Vielleicht hast es mit blShowUpdateViews verwechselt?

Wahrscheinlich haben sich die Pfade durch den Umzug auf anderen Server geändert. Gegebenfalls mit composer dump-autoload diese neu Generieren lassen.

Leider nein.

Den Provider habe ich nach nicht gewechselt. Der Shop und die Kopie liegen im gleichen Verzeichnis /shop und /test.
Probiere es trottzdem mal.

1 Like

Pardon für die lange fehlende Rückmeldung. Ich habe etwas mit ssh Berechtigungen zu kämpfen.

Leider ist keine automatische Selbstheilung eingetreten.

Hat leider nichts gebracht.
Ich habe die ganze Prozedur noch einmal NEU aufgespielt.
Ich habe immer noch im Frontend den Maintanance (ist ja auch offline) aber /admin eine ganz leere Seite ($this->blSkipViewUsage = true;) oder Maintanance (ohne skip)

Debug zeigt:
Warning: file_put_contents(/test/source/tmp/container_cache.php): failed to open stream: No such file or directory in /test/vendor/oxid-esales/oxideshop-ce/source/Internal/Framework/DIContainer/Service/FilesystemContainerCache.php on line 32

Warning: file_put_contents(/test/source/tmp/config.1.amodules.txt.temp61ae24237c5f97.76631735.txt): failed to open stream: No such file or directory in /test/vendor/oxid-esales/oxideshop-ce/source/Core/FileCache.php on line 60

Warning: rename(/test/source/tmp/config.1.amodules.txt.temp61ae24237c5f97.76631735.txt,/test/source/tmp/config.1.amodules.txt): No such file or directory in /test/vendor/oxid-esales/oxideshop-ce/source/Core/FileCache.php on line 62

LOG:
[06 Dec 16:08:19.520795 2021] [uncaught error] [type E_ERROR] [file /test/vendor/oxid-esales/oxideshop-ce/source/Core/Database/Adapter/Doctrine/Database.php] [line 954] [code ] [message Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘XXXXX.oxv_oxshops_de’ doesn’t exist in /test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:125
Stack trace:
#0 /test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(125): PDO->query()
#1 /test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOQueryImplementation.php(36): Doctrine\DBAL\Driver\PDOConnection->doQuery()
#2 /test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1260): Doctrine\DBAL\Driver\PDOConnection->query()
#3 /test/vendor/oxid-esales/oxideshop-ce/source/Core/Database/Adapter/Doctrine/Database.php(608): Doctrine\DBAL\Connection->executeQuery()
#4 /test/vendor/oxid-esales/oxideshop-ce/source/Core/Model/BaseMod]

Ergebnis $this->blSkipViewUsage = true; bzw. // $this->blSkipViewUsage = true;
Leere Seite oder Maintanance.

Das Problem hängt also irgendwie an den Views!? kann die irgendwei außerhalb der Shopsoftware generieren?

vendor/bin/oe-eshop-db_views_generate

https://docs.oxid-esales.com/eshop/de/latest/installation/update/standard-update.html

Anscheinend fehlen Dir die Rechte um die Views zu löschen. Dann bringt auch dei Skip View Usage Einstellung in der config.inc.php Datei nichts. Daher den Datenbank Dump ohne Views einspielen und wenn dann keine neue Views über Admin generiert werden können an den Hoster wenden.

Die Datenbank habe ich ohne views eingespielt. Allerdings scheint trotzdem ein Rechteproblem den Fehler auszulösen, denn wenn ich über ssh den Befehl:

ausführe erhalte ich:
-bash: vendor/bin/oe-eshop-db_views_generate: Permission denied

Also dem SSH-Benutzer die Rechte auf die Dateien gegeben, ausgeführt ohne Fehlermeldung…
aber in der DB sind keine Views und am Fehler ändert sich also auch nichts.

gerade etwas verzweifelt

Da fehlt wahrscheinlich nur die execute-Permission auf das Script.
Probier mal

ls -l vendor/bin/oe-eshop-db_views_generate
ls -l vendor/oxid-esales/oxideshop-db-views-generator/oe-eshop-db_views_generate

und poste das Ergebnis hier.

Das erste ist nur ein Symlink auf das Skript. Das Skript muss x-permission für den betreffenden User haben. Die kannst du setzen mit:

chmod +x vendor/oxid-esales/oxideshop-db-views-generator/oe-eshop-db_views_generate

okay hier fehlte die Berechtigung zum ausführen.
wenn ich dann aber in der shell vendor/bin/oe-eshop-db_views_generate aufrufe werden die Views trotzdem nicht in der Datenbank angelegt.

Sind die Berechtigungen für den gesamten Ordner /vendor/ gleich?
Und welchen chmod code sollte das Verzeichnis haben? 2770?

Wenn Du jetzt schon solche Probleme mit dem Hoster hast befürchte ich wird sich dies in Zukunft auch nicht ändern. Da wäre es langfristig besser den Hoster zu wechseln.

Deshalb versuche ich eine stabile Version hin zu bekommen, damit der Shop umziehen kann.

Das macht aus meiner Sicht kein Sinn. Wenn Du die Shop-Dateien und einen Datenbank Dump vorliegen hast - kannst aus meiner Sicht problemlos den Shop zu einem neuen Hoster wo die entsprechende Rechte für die View Tabellen hast umziehen. Dazu ist es nicht notwendig den Shop zuerst auf den bisherigen Hoster zum Laufen zu kriegen.

Das ist der Ursprung meiner Probleme. Beim Umziehversuch kamen Fehlermeldungen, von denen ich nicht wusste ob sie von der alten “verkorksten” Version, oder vom Umzug kamen.

Also Datenbankdump und Verzeichnisse sind natürlich gesichert. (und der Shop selbst läuft!)
Den neuen Provider gibt es auch schon.

Soll ich also besser umziehen und dann alle Fehler lösen?

Aus der Ferne schwer zu beurteilen. Zumindest könnte Dir dieses Vorgehen Arbeit ersparen.