Migration VM 1 zu VM 2 (Datenbank)

  • Hallo,


    auch ich stehe kurz vor einer Migration und habe durch Testinstallationen schon einiges gelernt.


    Folgende Vorbereitungen habe ich bisher für die Migration getroffen:
    Neuinstallation eines VM2-fähigen Templates unter Joomla 2.5 auf einem anderen Server
    Neuanlage der Menüs und der Inhalte (außer VM)
    Einrichtung aller Module für VM (so wie Sie benötigt werden)
    Kopien aller VM-Produktbilder von VM 1 in die entsprechenden Ordner von VM 2


    Eine Frage beschäftigt mich jetzt nachhaltig:
    Ich habe verstanden, dass ich die VM-Tabellen aus der alten Datenbank (Joomla 1.5) exportiere und in die neue Datenbank (Joomla 2.5) importiere.
    Frage 1 - MUSS ich vorher unter Joomla 1.5 VM1 zu VM2 upgraden?
    Frage 2 - muss ich vor dem Import der Tabellen die Original-Tabellen von VM2 löschen?
    Frage 3 - muss ich die Tabellen nach dem Import von "jos" nach "xxxx" umbenennen?


    Wäre toll, wenn ich ein paar Tipps bekommen könnte....


    Sabine

  • Herzlich willkommen Sabine :)


    Aus Ihrem Beitrag geht nicht hervor, ob Sie VM 1.0.x oder 1.1.x verwenden. Ich gehe davon aus, dass Sie VM 1.1.x verwenden.


    Ihre Fragen:

    Zitat

    Frage 1 - MUSS ich vorher unter Joomla 1.5 VM1 zu VM2 upgraden?
    Frage 2 - muss ich vor dem Import der Tabellen die Original-Tabellen von VM2 löschen?
    Frage 3 - muss ich die Tabellen nach dem Import von "jos" nach "xxxx" umbenennen?


    Zu 1: Nein. - Zu 2: Nein. - Zu 3: Ja




    Grundsätzlich sind beide Wege möglich:
    1. Migration VM 1.1.x zu VM 2.x innerhalb von Joomla 1.5.x
    2. Migration VM 1.x aus einer Joomla 1.5.x Installation zu VM 2.x in eine bestehende Joomla 2.5.x Installation


    Arbeiten Sie immer mit einem Backup! Führen Sie eine Migration nicht auf einer produktiven Website durch!



    Starthilfe:


    Das folgende Beispiel beschreibt eine Migration von VM 1.1.19 nach 2.0.x innerhalb einer Joomla 1.5.26 Installation.

    Nehmen Sie ein Backp (Akeeba Backup) von einer Joomla 1.5.x Installation mit VM 1.1.x. Im Idealfall testen Sie lokal unter XAMPP 1.7.3. So bekommen Sie vmtl. auch keine Probleme mit der maximal ausführbaren Zeit für ein Skript und dem Speicherlimit. Spielen Sie das Backup lokal mit Akeeba Kickstart auf. Alles, was mit SEO (mod_rewrite) zu tun hat, sollte deaktiviert werden. Somit brauchen Sie lokal nicht einmal eine konfigurierte .htaccess. Ganz wichtig ist es, Joomla 1.5.x auf den aktuellen Stand zu bringen: Joomla 1.5.26. Sowie VM 1.1.x: Hier ist 1.1.19 aktuell.



    • Wie oben beschrieben eine Testinstallation mit Joomla 1.5.26 und Virtuemart 1.1.19 einrichten.
    • Die com_virtuemart Ordner (.../compontens/com_virtuemart und .../administrator/components/com_virtuemart) umbenennen z.B. durch Anfügen der Endung ".alt".
    • Bilder für Produkte (products), Hersteller (manufacturer), Verkäufer (vendor) in die Ordnerstruktur .../images/stories/virtuemart verlegen. Dabei passende Unterordner anlegen und dort hineinkopieren/-verschieben. Die neuen Unterordner lauten im Englischen wie folgt: category, manufacturer, product, vendor.
    • In der Joomla Konfiguration ist die Debug Option zu deaktivieren. Sollte Software von Akeeba installiert sein, so muss "system restore points" deaktiviert werden (im Pluginmanager).
    • ALLE Erweiterungen von VM 1.1.x deaktivieren (Module und Plugins, jeweils im Modul- bzw. Pluginmanager erreichbar).
    • Die Standardsprache für das Frontend von Joomla muss der Sprache entsprechen, welche in den Produktbeschreibungen verwendet wird. In Ihrem Fall wird dies vmtl. die deutsche Sprache sein. Dieser Schritt muss in jedem Fall vor dem Virtuemart Update durchgeführt werden, so dass Virtuemart direkt die richtigen Standardtabellen für die verwendete Standardsprache installieren kann.
    • VM 2.0.x Komponente über den Erweiterungsmanager installieren.
    • VM 2.0.x AIO Extensions über den Erweiterungsmanager installieren. AIO enthält alle Plugins und Module für VM 2.0.x.
    • Shopadmin von VM 2.0.x aufsuchen, dort in der Konfiguration die Sprache oder ggf. alle Sprachen wählen, welche in Joomla installiert und eingerichtet sind. Führen Sie dies auch dann aus, wenn der Shop nicht für Mehrsprachigkeit ausgerichtet ist. Anschließend die Konfiguration speichern.
    • Shopeinstellungen: Alle Grundeinstellungen, Versand-, Zahlungs- und Steuerregeln sollten vor der Migration durchgeführt werden. So werden diverse Regeln auf die u.a. noch zu migrierenden Kategorien und Produkte gleich richtig angewendet.
    • Aktivieren Sie die "Enable Database Update Tools" in der Virtuemart Konfiguration.
    • Wechseln Sie zu Tools (Werkzeuge) >> Tools & Migration >> Register "Migration": "Alles" auswählen und Migration starten.
    • Die Migration muss ggf. so oft gestartet werden, bis alle Produkte migriert sind.
    • Abschließend bei den DB Werkzeugen Medien mit Virtuemart synchronisieren und im Shopadmin unter Shop >> Media Dateien alle Produktbilder markieren und mit Virtuemart synchronisieren



    Alternativ:
    Tabellen aus Datenbank mit VM 1.1.x exportieren und in die Datenbank von Joomla 2.5.x importieren

    • Installation Joomla 2.5 mit VM 2.0.x ist vorhanden
    • Datenbanktabellen von VM 1.1.x aus der "alten" Installation exportieren und in die "neue" Installation importieren. Sofern die Joomla-Benutzer nicht auf andere Weise migriert werden, sollte die Tabelle jetzt ebenfalls mitgenommen werden. Nach dem Import ist sicherzustellen, dass der Präfix für die importierten Tabellen dem Präfix der bereits vorhandenen Tabellen in der "neuen" Installation entspricht.
    • Bilder aus der alten Installation analog wie oben bereits beschrieben in die passende, neue Ordnerstrukur für Bilder in die neue Installation kopieren.
    • Migration wie oben beschrieben im Shopadminbereich von VM 2.0.x aufsuchen und Migration starten.



    Anmerkung:
    Wie ich schon mal im Forum darauf hingewiesen habe: Eine Migration ist m.E. immer individuell zu betrachten. Jeder hat seine eigenen Anforderungen und Rahmenbedingungen (bestehende Installation, Erweiterungen, Serverumgebung usw.). Daher kann man nicht pauschal diesen oder jenen Weg als Patentrezept anbieten. Es gibt auch mittlerweile m.E. mehrere richtige Ansätze für eine Migration.


    Diese Anleitung ist somit als Einstieg in das Thema zu verstehen. Sie ist keinesfalls eine mustergültige Anleitung für eine Migration sondern eine Hilfestellung für eine grundsätzliche Vorgehensweise.

  • Freier Forenbereich: Hilfestellung


    Premiumkunde: Support


    Sie haben hier soeben eine Hilfestellung erhalten ;)


    Sie und Ihre Erfahrungswerte sind hier jederzeit herzlich willkommen :)

  • Mit der beschriebenen Vorgehensweise hat die Migration einwandfrei geklappt. Nur bin ich leider zu spät über den Hinweis "gestolpert", dass man bereits vor der Migration in VM 2 den Steuersatz anlegen muss, damit die übernommenen Produkte korrekt mit MwSt. angezeigt werden.


    Also wichtig!!!
    Vor der Migration UNBEDINGT den gewünschten Steuersatz im neuen Shop anlegen


    Würde mich freuen, wenn einer eine funktionierende Idee hat, wie man einen Steuersatz nachträglich automatisch für alle Produkte anwenden kann.


    Gruß Sabine

  • Haben Sie im Nachhinein den Steuersatz angelegt und nach dem Speichern mal überprüft, ob die Regeln angewendet werden? Hier einmal die Einstellungen, so wie ich Sie auch im Virtuemart Demo Shop gewählt habe:



    Vielleicht haben Sie andere Einstellungen gewählt ?!


    Ich hatte in meiner obigen Anleitung "blind" vorausgesetzt, dass der neue Shop bereits mit allen Grunddaten und Regeln eingerichtet wurde. Insofern ist dieser Punkt dann noch der Anleitung an passender Stelle der Virtuemart-Installation hinzuzufügen.


    Im Gedächtnis schwebt mir noch was mit der Vendor-ID in der Datenbank vor. Es kann sein, dass diese identisch sein muss mit der ID des Vendors im neuen Shop. Das war mir mal bei den ersten VM2-Versionen begegnet. In Ihrem Fall würde ich aber erst mal die Einstellungen wie im Bild gezeigt nachvollziehen und durch Abspeichern anwenden. Cache leeren und dann mal sehen, ob sich was getan hat.

  • Den Steuersatz habe ich genau wie abgebildet angelegt und auch alle Produktkategorien ausgewählt. Leider wird die Regel jedoch nicht im "nach herein" angewendet. In den einschlägigen Foren wird dieses Problem auch thematisiert...ohne Lösungsansatz!
    Die Vendor-Id habe ich dank Ihres Hinweises geprüft. Sie ist identisch mit der ID des alten Shop´s.


    Mittlerweile ist ja das nächste VM-Update in Vorbereitung :rolleyes:


    Vielleicht haben Sie aber einen Tipp für ein weiteres Problem.
    Gibt es eine Möglichkeit, die Produktvarianten (früher "childs") nach Artikelnummer zu sortieren?

  • Zitat

    ...ohne Lösungsansatz!


    Haben Sie sich einmal in der Datenbank die Tabelle "..._virtuemart_product_prices", Spalte "product_tax_id" angesehen? Bei dem Beispiel aus meinem Bild oben lautet dort die product_tax_id überall "0". Vmtl. haben Sie dort keinen Eintrag. Somit wäre dies dann ein "echter" Lösungsansatz als Starthilfe.


    Zitat

    Gibt es eine Möglichkeit, die Produktvarianten (früher "childs") nach Artikelnummer zu sortieren?


    Bitte zukünftig ein neues Thema eröffnen. Danke :)
    Derzeit gibt es offensichtlich keine Möglichkeit direkt aus dem Core von VM 2 heraus. "Childs" oder auch "Attributes" werden in der Reihenfolge angezeigt, in der sie zuvor angelegt wurden. Mit Stand von heute wäre man auf Codeänderungen oder Änderungen in der Datenbank angewiesen, um ggf. die Reihenfolge der erfassten "childs" im Nachhinein zu verändern. Anderseits kann man aber auch darauf hoffen, dass dies entweder noch als Funktion im Core von VM 2 eingebaut wird bzw. über Dritthersteller (Erweiterungen).

  • Genial.....


    Ich hatte mir die Tabelle, bzw. die Spalte mit der "tax-id" zwar schon angeschaut, aber mir fehlte schlicht der Mut hier etwas zu ändern.


    Nun habe ich mich mit folgendem Befehl getraut:


    UPDATE `hg6v2_virtuemart_product_prices`
    SET `product_tax_id` = 1
    WHERE `product_tax_id` = 0


    ...siehe da, die richtige MwSt. ist jetzt bei allen Produkten angewandt worden!!!

  • Sie standen also schon sozusagen direkt vor der Lösung? Wenn Sie mit Backups arbeiten, können Sie durchaus mutiger sein ;)


    Danke für die wirklich hilfreiche Rückmeldung!


  • UPDATE `hg6v2_virtuemart_product_prices`
    SET `product_tax_id` = 1
    WHERE `product_tax_id` = 0


    Danach habe ich lange gesucht, Danke!


    Kurze Frage, wie wurde die Migration gemacht, so wie in der Starthilfe beschrieben oder die zweite Alternative?


    Viele Grüße Ray

    was manche sich selber vormachen, macht ihnen so schnell keiner nach

  • .....
    Neuinstallation eines VM2-fähigen Templates unter Joomla 2.5 auf einem anderen Server
    ......


    Hallo Sabine, hier eine Information über eine funktionierende Migration von Joomla 1.5.x aud 2.5.x einscließlich Virtuemart:
    Uprade Joomla 1.5 auf 2.5 mit Virtuemart
    Anmerkung:
    Alternative 2 zeigt das Vorgehen mit dem kostenpflichtigem SP Upgrade. Dieses funktioniert optimal.
    Alternative 1 informiert über eine Migrations Test mit dem System Upgrade. Unsere Erfahrungen hierzu:
    das kostenlose System Upgrade funktioniert leider nur eingeschränkt. Wir halten es zur Zeit noch nicht empfehlenswert.
    Wave

  • Hallo,
    vielen Dank für die ausführliche Beschreibung der Migration!


    Ich habe mit Methode 2 die Migration durchgeführt. Es lief auch relativ problemlos bis auf unten stehende Fehler durch. Artikel, Kategorien, User und Bestellungen etc. wurde komplett migriert.


    Folgende Fehler sind aufgetreten:

    Zitat

    vmError: port shoppers db error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`vmu`.virtuemart_user_id FROM cgfer_vm_user_info AS `ui` LEFT OUTER JOIN cgf' at line 1 SQL=SELECT `ui`.*,`svx`.*,,`vmu`.virtuemart_user_id FROM cgfer_vm_user_info AS `ui` LEFT OUTER JOIN cgfer_vm_shopper_vendor_xref AS `svx` ON `svx`.user_id = `ui`.user_id LEFT OUTER JOIN cgfer_users AS `p` ON `p`.id = `ui`.user_id LEFT OUTER JOIN cgfer_virtuemart_vmusers AS `vmu` ON `vmu`.virtuemart_user_id = `ui`.user_id WHERE (`vmu`.virtuemart_user_id) IS NULL LIMIT 0,1000


    vmError: port shoppers db error SELECT `ui`.*,`svx`.*,,`vmu`.virtuemart_user_id FROM #__vm_user_info AS `ui` LEFT OUTER JOIN #__vm_shopper_vendor_xref AS `svx` ON `svx`.user_id = `ui`.user_id LEFT OUTER JOIN #__users AS `p` ON `p`.id = `ui`.user_id LEFT OUTER JOIN #__virtuemart_vmusers AS `vmu` ON `vmu`.virtuemart_user_id = `ui`.user_id WHERE (`vmu`.virtuemart_user_id) IS NULL LIMIT 0,1000


    Es handelt sich offenbar um die Benutzerinformationen wie Adresse etc. In der Tabelle _userinfos stehen wohl alle Daten drin, werden aber weder im BE noch im FE bei den jeweiligen Usern angezeigt.


    Da ich kein Held in Sachen Programmierung bin, bitte ich um Hilfe!


    Folgende Systeminformation habe ich:
    Datenbankversion: 5.1.66-0+squeeze1
    PHP-Version: 5.3.3-7+squeeze15
    Joomla 2.5.11


    Vielen Dank!

  • Danke erst mal für die Info!


    Die Datenbank und PHP ist aus dem aktuellen Debian Sqeeze Paket und müsste nach den Requirements von Joomla und VM völlig ausreichen. Inzwischen haben wir mit MySql 5.4 probiert - gleicher Fehler.


    Ich bin im Grunde nach der Alternative 2 aus diesem Thread vorgegangen:
    Neue Joomla 2.5.11 Installation, VM 2.0.22 installiert, ALLE Einstellungen gemacht - Versandkosten, Steuern, Pfade etc. konfiguriert. Tabellen mit richtigem Prefix aus der VM 1.1.19 in die datenbank importiert. Migration gestartet mit dem Ergebnis der o. g. Fehlermeldung. Aus der Tabelle _vm_user_info wurden dabei nur ca. 200 von 2400 Datensätzen in die Tabelle _virtuemart_userinfos übernommen.


    2. Versuch:
    Bei diesem Versuch bin ich genauso vorgegangen, habe jedoch VM 2.0.20b verwendet und bekomme eine andere Fehlermeldung und eta 1500 importierte Datensätze von 2400. Dieses mal werden auch die Userinfos im VM angezeigt.


    Fehler:

    Zitat

    vmError: Table userinfos check failed: Unknown address_type
    vmError: Migration storeAddress BT
    vmError: Table userinfos check failed: Unknown address_type
    vmError: Migration storeAddress BT
    vmError: Table userinfos check failed: Unknown address_type
    vmError: Migration storeAddress BT


    Was ist falsch?

  • Es stand bereits in der Anleitung geschrieben: ... lokal testen ...


    Bezüglich einer Serverkonfiguration nach Fehlern zu suchen, ist meistens Sache der Glaskugel, sprich Raten und tausend Mal nachfragen. Das ist immer sehr schwierig im Wortwechsel aufzuklären.


    Meine letzten Migrationen liefen unter XAMPP 1.7.3 - auch mit mehreren Tausend Benutzern - einwandfrei durch.


    Probier es einfach mal lokal mit XAMPP 1.7.3.


    In der Tat empfehle ich heute auch eher SP Upgrade. Aber aus z.T. anderen Gründen. Das hat also konkret mit Deinem Problem nichts zu tun.


    Dein 2. Versuch klingt doch schon viel interessanter! Hier einfach die Migration erneut starten. Virtuemart merkt sich die Stelle nämlich (Speicherung in der Datenbank) und migriert dann ab der Stelle weiter. In Deinem Fall halt die Benutzer.


    OT:
    wavebrook: Lenk doch den Benutzer nicht weg von dieser Seite. Warum erklärst Du nicht HIER, was Deine 2. Alternative ist?

  • @Michael Schulze


    Dein Tipp mit dem nochmaligen Anstoßen der Migration hat Wert gehabt. Hab die Migration noch 2 mal angestoßen und alle Daten waren übertragen.


    Allerdings mit VM 2.0.20b - die aktuelle Version 2.0.22 hat offenbar einen Bug und funktioniert definitiv nicht.


    Abgesehen davon ist die Serverkonfiguration optimal für Joomla eingestellt - daran liegt´s sicherlich nicht.


    Jedenfalls vielen Dank und ein schönes Wochenende.