Search code examples
upgrademagento-1.4magento-1.5magento-1.6magento-1.3

Magento: upgrade pre 1.6 version to most recent one


I've seen a lot of questions about pre 1.6 Magento installations to the most recent version (at the current moment 1.7.0.2) but there are a lot of answers that don't work for everybody.

So below the answer to the question: How to upgrade Magento from a pre 1.6 installation to the most recent one.


Solution

  • There are a lot of versions and not all of them are working. This one has worked for me for a lot of versions, as far as 1.3 to 1.7.

    Please add comments with solutions to problems you're experiencing, I can update the answer so other people get help from this topic too!

    What you need: - SUDO rights/root account on your server. - The linux package 'nohub' - make sure NOBODY can trigger the index.php. If your version supports maintenance.flag, put an empty maintenance.flag file in your Magento root.

    Walkthrough

    1) Download the latest Magento. Overwrite: ./download/* ./lib/* ./mage
    2) Run these steps from you Magento root als SUDOer (if you're not root, put 'sudo' for all the commands)

    find . -type f -exec chmod 644 {} \;
    find . -type d -exec chmod 755 {} \;
    chmod -R 777  ./var
    chmod 550 mage
    

    3) Go to your Magento root folder and type:

    ./mage list-upgrades
    ./mage config-set preferred_state stable
    ./mage upgrade-all --force
    ./mage install http://connect20.magentocommerce.com/community Mage_All_Latest --force
    

    4) Now there is the last step. Note: In some situations this process can take up to 8+ hours!

    nohup php -f ./index.php 
    

    Known issues

    1) it's possible that your update gets in a loop. To find this loop, enable debugging.
    Edit: /lib/Varien/Db/Adapter/Pdo/Mysql.php (+/- line 112 and 112)

    protected $_debug               = true;
    protected $_debuglogeverything  = true;
    

    This will write a debug to: /var/debug/[debug_file]

    2) Read the file by opening the dir:

    cd /var/debug/[debug_file] <-- replace with the actual filename
    tail -f [debug_file]
    

    3) If you use debug, the file will get HUGE! Make sure you delete it once in a while.
    Tip: as a root user, type:

    crontab -e
    */5 * * * * rm /[my_magento_base_folder]/var/debug/[debug_file] <-- add this line
    

    If you want to read the file, add a # to this line and use tail to read it.

    These steps help you find common errors and loops (if the tail shows a repeating error message)