+1-888-365-2779
Try Now
More in this section

Forums / Deployment / 4.4 -> 5.0 Upgrade Production Database Upgrade Question

4.4 -> 5.0 Upgrade Production Database Upgrade Question

6 posts, 0 answered
  1. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    22 Jun 2012
    Link to this post
    I'm in the process of upgrading from SF 4.4 to the latest version of SF 5.  Before starting the upgrade I copied my production database to my development machine.  The upgrade completed successfully and everything seems to have updated properly.  I'm in the process of working through a number of of minor issues and hope to be ready to deploy early next week. 

    However, I'm still pretty confiused about how to upgrade my production database.  Obviously, I can't copy the development database back to the production server.  The upgrade guide states the following regarding upgrading the production database:

    If you want to merge the locally upgraded website with the production website without replacing the database, perform the following:
    1. Package the upgraded website without the configuration files from ~/App_Data/Sitefinity/Configuration.
      Do not include the locally upgraded database.
    2. Upload the upgraded package and merge it with your production website files.
    3. Restart the website.
      This triggers the upgrade process of your production database.
    4. Browse the backend and the frontend of your local project and ensure that everything is working fine.

    My config files include entries for custom controls, custom modules, ecommerce settings, etc.  Am I supposed to copy these files back in to the ~/App_Data/Sitefinity/Configuration  after the database upgrade has been completed?  Will the lack of the config files cause issues with any already installed custom controls/modules?  As usual, the documentation provides too little detail to be completely helpful.

    Steve

  2. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    26 Jun 2012
    Link to this post
    Anyone?
  3. Jochem Bökkers
    Jochem Bökkers avatar
    787 posts
    Registered:
    13 Aug 2007
    27 Jun 2012
    Link to this post
    Hey Steve,

    The not copying of configuration files to your production server is just so it will trigger the db upgrade process. Similar when you start a fresh project and there's nothing in the configuration section.

    Once the upgrade process of the db is complete, you shouldn't have to re-copy the configuration files from your development server because the ones on the production server (v4.4) will be upgraded to v5.

    That's why they mentioned 'merge' in step 2, so don't copy the new files to a clean folder structure. Once the upgrade process is finished the files (production and development) should be similar unless you've made changes on the development files after the upgrade.

    If you did, you need to copy those files over the production ones - or redo the changes manually.

    Hope it clarifies things a bit, if not feel free to hit me up on Twitter or GoogleTalk

    Jochem
  4. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    29 Jun 2012
    Link to this post
    Hi Jochem,

    I've haven't had a chance to try this as I ran into a number of other unrelated issues that have delayed my testing and deployment.

    However, I'm still confused as to how this can possibly work.  Consider that config files such as the EcommerceConfig.config file contains store configuration info such as:
    shippingFromStateProvince
    shippingFromZip
    storeName
    merchantEmail

    Other config files such as the ToolboxesConfig.config file contain confinguration info that SF can't possibly know about if these files are removed.  It seems to me that the only way to get this work without having to reconfigure SF entirely from scratch after forcing the database upgrade is to copy the config files from the development project back into the ~/App_Data/Sitefinity/Configuration  folder. 

    I'm really surprised this hasn't come up before as I can't imagine it's an unusual scenario.  At this point I'm looking to avoid wasting a ton of time experimenting to get this to work.

    Thanks -- Steve
  5. Jochem Bökkers
    Jochem Bökkers avatar
    787 posts
    Registered:
    13 Aug 2007
    29 Jun 2012
    Link to this post
    Hey Steve,

    You're reading to much into the upgrade, which is natural given the fact that it's a production environment... let me try and explain it a different way.

    On your development server, you pulled in everything (files in bin folder, .config files etc) from the production server prior to upgrade correct? Then you choose the 'upgrade' option.

    This copied (on your development server) some updated files in the bin folder and perhaps some .svc files, nothing more. The first time you browsed to your development website, Sitefinity noticed that the bin files were newer version than .config and db and triggered the 'data update', which upgraded your .config files and your db.

    ---
    Sitefinity's upgrade process is basically two-fold: there's the 'files-update', which copies newer version of svc and dll files. And there's the 'data-update' which upgrades .config files and your db.
    ---

    Your production server, is fully configured for the old version of Sitefinity. But you can't run Sitefinity's project manager there and click the update button. So, you have to do the 'files-update' manually...

    That's why you need to copy/ftp all files from your development server to your production server. When you copied over all the .dll and .svc files etc you've manually did the 'files-update' and when you first browse to your production server's url, Sitefinity will see the mismatch between file version and data version and trigger the .config & db upgrade.

    ---
    So to get back to your EcommerceConfig.config file
    Currently it has something like config:version="4.4.2117.0" just like all the .config files on your production server. Copying over all the new .dll and .svc files won't change that - nor the custom storeName="lorem" setting. When first browsing to your website, Sitefinity sees that the dll's are version 5.0.2860 and it'll then upgrade your db and all your .config files (just like it did on your development server) and after the upgrade the .config file will read config:version="5.0.2860.0" and the storeName="lorem" will still be in there.

    I hope I've managed to clarify it and removed the confusion...
    Jochem
  6. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    06 Jul 2012
    Link to this post
    You were right--I was reading too much into this.  My main issue was with the way I interpreted the instructions.  My Interpretation was that rather than using the config files from the development or production web sites, the config files were being excluded entirely.  I completed the upgrade yesterday morning and all went fairly smoothly.

    Thanks again for the help,

    Steve
6 posts, 0 answered