Upgrade virtuemart 1 na verzi 2

Před nedávnem jsem se konečně pustil do upgrade některých starších eshopů ve virtuemart na verzi 2. Snažil jsem se postupovat podle návodů na webu, ale postup mi připadal naprosto zmatený a nesmyslný. Tak jsem si udělal vlastní postup. Pro jeho zvládnutí je třeba znát základy práce s phpadminem a kopírováním souborů pomocí FTP...

Obvyklá situace před upgrade je stav, kdy máte redakční systém joomla 1.5.23 a virtuemart 1.1.9 (poslední verze, která jede pod joomla 1.5). Já při upgrade VM zároveň provádím i upgrade Joomly, což vyžaduje de-facto novou instalaci aktuální joomly  na testovací doméně. Pokud tedy máte vytvořenou čistou instalaci joomly (1.6 a výše) a na ní nainstalovaný nový prázdný virtuemart (verze 2 a výše), pomocí následujícího postupu dostanete do této instalace data ze starého obchodu. Samozřejmě doporučuji tento postup provádět s maximální možnou opatrností, udělejte si případně zálohu stavu před upgradem.

1) přenos adresářů s fotkami produktů, kategorií a výrobců

Nejjednodušší část je fyzický přenos fotek ze starého VM do nového. Veškeré fotky k produktům a kategoriím by se na starém obchodu měly nacházet v adresáři /components/com_virtuemart/shop_image z něj si stáhněte pomocí FTP adresáře /category  samozřejmě /products a případně i /vendor. Tyto adresáře (i s podsložkami) překopírujte na novou sajtu s VM2, ale do adresáře /images/stories/virtuemart. Všimněte si, že nový VM konečně inteligentně používá správnou složku (dostupnou i z adminu) pro ukládání souborů a ne jen podadresář v samotné komponentě.

2) export db tabulek ze starého virtuemartu

Spusťte si normální PhpMyAdmin na staré site, kde máte zdrojová data, a vyexportujte si všechny tabulky patřící k virtuemartu. Jsou to všechny tabulky, které mají na začátku jos_vm_ (například jos_vm_product je tabulka pro produkty). Všechny tyto tabulky tedy v phpmyadminu označte, klikněte na export a vyexportujte si je do souboru typu sql. Soubor si uložte někam na lokální disk, abyste si ho mohli upravit.

3) připravení starých tabulek pro import, nahrazení prefixu jos_ db tabulek

Nyní si spusťte PhpMyAdmin pro nové stránky. Je to důležité, abyste si zjistili prefix databázových tabulek nových stránek. Prefix je část názvu tabulek společná pro všechny db tabulky vytvořené instalací joomly (dřívější verze 1.5 a nižší používaly jednotný prefix jos_), jedná se o náhodný řetězec, který vygeneruje instalace joomly (například pro tyto tabulky gxm7h_assets, gxm7h_associations, gxm7h_banners je společná část na začátku každého názvu gxm7h_). Váš prefix bude samozřejmě asi jiný než uvedený v mém případě. Tímto prefixem je třeba nyní nahradit starý prefix jos_ importovaných tabulek, které jste dostali v bodu 1.

Nejjednodušeji to uděláte, když si exportovaný soubor otevřete v jakémkoliv textovém editoru (já používám pspad) a spustíte funkci HLEDAT a NAHRADIT. Hledáte řetězec jos_vm_ a nahrazujete ho řetězcem prefix_vm_ , takže v našem případě by to byl řetězec "gxm7h_vm_" . Tím docílíte, že staré db tabulky budou kompatibilní s novou instalací joomly a virtuemart import na ně uvidí. Změny v sql souboru uložte.

4) import upravených starých tabulek do nového virtuemart 2

Upravený sql soubor nyní pomocí nástroje PhpMyAdmin naimportujte k databázovým tabulkám nové čisté instalace joomly a virtuemart. Pokud jste vše dělali správně, tak se nemusíte se bát, protože v nové joomle se žádné tabulky se společným prefixem "prefix_vm_" (v našem případě gxm7h_vm_) nevyskytují. Nový virtuemart totiž používá prefix "gxm7h_virtuemart_" (v našem případě gxm7h_virtuemart_), takže nedojde ke kolizi tabulek.

Zbývá jediné, spustit migrační nástroj zabudovaný přímo ve virtuemart 2. Normálně najeďte v backendu na Komponenty -> Virtuemart. Z nabídky vlevo klikněte na Nástroje - > Aktualizace / Migrace. Ze záložek Nástroje databáze / Migrace vyberte Migrace, zatrhněte typ migrace a klikněte na tlačítko "start migrace". Mi se napoprvé nenaimportovaly soubory (fotky) k produktům a ketogeriím, tak jsem migraci provedl 2x, nejdríve jsem měl zatrženo "základní" a pak jsem sólo doimportoval "produkty". Ale možná Vám to pojede hned napoprvé, když vyberete zatržítko vše.

Pokud se něco naimportovalo špatně a chcete si to zkusit znovu, není problém, klikněte si na záložku Nástroje databáze a klikněte na vyčištění virtuemart tabulek do stavu nové instalace (mělom by to být tlačítko Obnovit všechny tabulky a nainstalovat ukázková data - asi to blbě přeložili). Tím máte obnovenou čistou instalaci VM2 a můžete zkoušet jiný postup.

5) help, help, help!

Je mi jasné, že uvedený postup může připadat někomu složitý a může se na jakémkoliv bodu zaseknout. Pokud byste potřebovali navedení a pomoc, kontaktujte mne, pokud to bude v mé moci, pomůžu. Zkuste třeba skype: pelipelipeli anebo email: Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

 

Jmenuji se Radek Pelikán, bydlím v Ledči nad Sázavou. Mám 3 krásné děti.

Mezi mé velké koníčky patří desková hra Go a nově jsem začal cvičit Kendó v Ledči nad Sázavou.