Come aggiornare Magento

Logo-magentoNumerose sono le possibilità offerte da Magento per effettuare l’aggiornamento di versione. Obiettivo di questo articolo sarà quello di spiegare nel dettaglio due delle più comuni e facili procedure da seguire, raccogliendo utili consigli direttamente dalla wiki ufficiale di Magento.

Prima di tutto il backup

Prima di cominciare qualsiasi operazione di aggiornamento, dobbiamo assolutamente effettuare una copia dei dati, sia del database che dei files. I “fortunati” possessori dell’accesso SSH, potranno comodamente effettuarlo con due semplici comandi.

#Backup database
mysqldump -u utenteDatabase -p nomeDatabase > nomeDatabase.sql

#Backup files
tar czvf directoryMagento.tgz directoryMagento

Tutti gli altri potranno o utilizzare le funzionalità di backup offerte dal pannello di controllo del proprio hosting, oppure utilizzare phpMyAdmin per il dump del database e un software ftp per la copia dei files.

Settiamo i permessi

Prima di procedere con l’aggiornamento, dobbiamo settare i permessi di scrittura a tutta la cartella di Magento, come avevamo già visto in un precedente tutorial.

Aggiornamento da Magento Connect Manager

Sicuramente, il metodo più semplice di effettuare l’aggiornamento è quello di utilizzare il Magento Connect. Per raggiungerlo, colleghiamoci al back-end del nostro e-commerce e dal menù “Sistema“, selezioniamo la voce “Magento Connect / Magento Connect Manager” (ci verrà richiesto, per motivi di sicurezza, di ripetere i dati di login). Inseriamo la stringa “magento-core/Mage_All_Latest“, come illustrato nell’immagine seguente.

magento-connect-key

L’operazione, a seconda dalla dimensione del database, potrà richiedere diversi minuti.

Aggiornamento partendo da una nuova installazione

Andremo ora ad analizzare un secondo metodo di aggiornamento che più volte mi è tornato molto utile, in particolare in situazioni in cui si voleva di fatto fare un re-style completo di un e-commerce Magento (nuova grafica, nuove estensioni, nuove funzionalità), preservando però tutti i dati del “vecchio” e-commerce, come ordini, clienti, iscritti alla newsletter, prodotti. Il procedimento è di fatto molto semplice ed è lo stesso che va seguito per l’installazione da zero di una copia Magento (procedimento descritto in un precedente tutorial). Basterà indicare, al momento della richiesta dei dati di configurazione, il nome del database al quale è collegato il “vecchio” e-commerce (in figura la fase di richiesta dei dati).

3

In automatico, il procedimento di installazione, riconoscerà nel database la presenza di una vecchia installazione e si occuperà di aggiornarla. Il risultato sarà quello di ottenere un Magento aggiornato all’ultimissima versione disponibile, con già però tutti i dati del nostro “vecchio”  e-commerce. Come detto in precedenza, l’operazione potrà durare diversi minuti a seconda della mole di dati memorizzata nel database. A operazione ultimata, prendendola dal backup in precedenza effettuato, copiamo la cartella “media” in questa “nuova” installazione di Magento. In questo modo verranno preservate anche tutte le immagini dei nostri prodotti.

Consigli utili

We do NOT recommend upgrading a production installation of Magento directly. Please backup database and all files before upgrading“.
E’ la stessa società che realizza Magento a ricordarci, a ogni uscita di una nuova versione, di non procedere a un aggiornamento direttamente su un sito in produzione e soprattutto, senza aver in precedenza effettuato un backup. Ricordiamoci inoltre che con l’aggiornamento, qualsiasi modifica eventualmente fatta a files del “core” verrà persa. Questo perché i files del core non vanno mai modificati. Fortunatamente Magento è una piattaforma veramente potente che mette a disposizione diversi strumenti per la sua personalizzazione (realizzazione di moduli/estensioni). A molti, il più delle volte, risulterà una complicazione dover realizzare un modulo apposta per dover modificare una piccolissima funzionalità del “core” che non funziona come noi vogliamo e una riga di codice inserita nel posto giusto in un file del core sembra la strada più facile da seguire. Quando sarete tentati a fare questo, pensate al giorno in cui dovrete aggiornare il vostro e-commerce. Preferite tenere sempre aggiornato il vostro negozio e offrire ai vostri clienti tutte le più moderne funzionalità ? Oppure arrivare un giorno a non poterlo aggiornare per i troppi “ritocchi” fatti al “core” ?

Lascia un commento

Tutti i campi sono obbligatori.
L'indirizzo email non verrà pubblicato

 

Commenti

  1. avatarLorenzo

    Ti ringrazio per queste Guide : sono senz’altro utili per chi inizia nel mondo dell’E-commerce e vedo scarsità di manuali in italiano in giro.

    Volevo chiederti solo una cosa : come si fà a mettere un menu di testa con le pagine, o far apparire un blocco di link.. ? Ho cercato ma non riesco ( la cosa è un pò strana ), ho caricato anche il pacchetto:
    web-experiment.info articles wp_custom_menu

    ma niente dafare, e ho seguito le istruzioni cercando di collegare 1 categoria root (con 2 prodotti) come descritto nella guida..

  2. avatarRoberto Rubino Autore

    Ciao.. grazie a te che ci segui.. provo ad aiutarti…

    Se hai dimestichezza con i template potresti fare qualche cosa te senza installare nessun plug-in:

    Prova ad aprire il file catalog.xml.
    Osserva come viene inserito il menu di navigazione delle categorie:

    Potresti fare una cosa simile e crearti una tua pagina all’interno della quale andrai a costruirti come meglio credi il tuo menu (link o pagine).
    Per prendere dinamicamente i dati delle pagine puoi utilizzare la seguente collection:

    $collection = Mage::getModel(‘cms/page’)->getCollection()->addStoreFilter(Mage::app()->getStore()->getId());

    Spero che queste informazioni possano tornarti utili.
    Ciao

  3. avatarFranco

    Dopo aver aggiornato Magento con magento-core/Mage_All_Latest ma non mi sostituisce la label sotto da Vers. Magento 1.4.1.1 a Vers. Magento 1.4.2 o superiore
    Come faccio?

  4. avatarRoberto Rubino Autore

    Molto probabilmente è andato qualche cosa storto nell’aggiornamento… prova a vedere che valori trovi per la funzione “getVersionInfo()” nel file /app/Mage.php

    Ciao

  5. avatarrossano

    Ciao Roberto,

    ho aggiornato magento dalla versione 1.8.1.0 alla 1.9.0.1 come hai descritto, ho messo le cartelle del nuovo magento in una sottocartella con nome diverso per testarlo, ho fatto il backup, ho cambiato gli url ma quando vado per entrare mi rindirizza nella cartella dove c’è magento 1.8.1.0. Che altro url devo cambiare? io ho cambiato quelli di core..

  6. avatarRoberto Rubino Autore

    @rossano
    Se hai la certezza che il sottodominio sia configurato correttamente (immagino di si visto che dici di aver portato a termine la procedura), quello che puoi fare è andare a cercare all’interno della tabella “core_config_data” la presenza di qualsiasi riferimento all’url errato.
    Prima di questo potresti anche provare a svuotare il contenuto della cartella “var/cache”

    ciao

  7. avatarVicky

    Ciao,
    scusa ma scrivendo magento-core/Mage_All_Latest mi dice: Couldn’t resolve host ‘magento-core’

    E’ molto che non smanetto con magento, mi ricordo che c’era un modo per risolvere questa cosa. Tu lo sai?

  8. avatarAlbert

    Ho fatto il passaggio dalla 1.8.1 alla 1.9.1, cercando di utilizzare il procedimento di una nuova installazione su database esistente, l’installer non riconosce il db e una volta lanciata mi da questo errore:

    There has been an error processing your request

    Exception printing is disabled by default for security reasons.

    Error log record number: 923835436960

    che posso fare?
    Grazie in anticipo!

    p.s. permessi tutti a 777, proprietario e gruppo corretti,

  9. avatarGiulio

    Queste procedure vanno bene per aggiornare la versione 1.7 a 1.9.2?

    In particolare mi interessa la seconda possibilità quella di preservare tutti i dati dei prodotti e utenti.
    Però qui mi sorge un dubbio, eventuali estensioni utilizzate, vanno poi aggiornate anch’esse oppure non nel caso in cui non servono più?

    Grazie