I've been a bit frustrated with the process of updating EE in past few months so I'd like to learn best practices from the community so I can alleviate my pain a bit. I manage my site with Git and Github and deploy to two bare repos (dev, prod).

Here it is how I do it currently:

  • Download the latest version from Ellislab
  • Dump my prod database and import it locally
  • Create a separate branch for the update
  • Follow the instructions on Ellislab on how to update
  • After update is done I merge the branch onto master
  • Import database to prod
  • And finally push my merged master branch to Github and then dev.

On average, this process takes somewhere between 30 min to 1 hour. It depends on the size of your site (database, configuration, modules, etc).

What's flawed with my process? Is there a better process, if so what do you recommend? I'm eager to hear your suggestion and learn from you all!



3 Answers 3


I use Git and Beanstalk to do a 2-phase upgrade process. I upgrade and troubleshoot locally then quickly deploy the upgrades to production when I'm done.

I wrote a blog post about it: https://www.kristengrote.com/blog/articles/the-20-minute-expressionengine-upgrade

  • Thanks! Your process is very similar to mine. Sometimes, I run into issues when pushing the upgraded local version to prod and then I have to redo everything again. I'm also in the process of installing capistrano for deployment. Aug 2, 2014 at 15:38
  • Looking at it closely, I've never changed is_system_on to "n" when upgrading. What does that do? Aug 2, 2014 at 15:44
  • It avoids that somebody open the site and see a possible error report while updating. For the same reason, you should clean EECMS cache just after put the system offline.
    – Sobral
    Aug 3, 2014 at 13:23
  • @jmdesigner81 When you turn the system off in the CP it updates the config file setting to n. But if you deploy your local config file without changing the config variable, your system will get turned back on in the middle of your upgrade and your users will see possible upgrade issues.
    – kmgdev
    Aug 4, 2014 at 15:31

Same process here, except that I update all add-ons the site uses in the process.

DevDemon updater can speed up the process a little bit.

  • Do you run Updater locally and then push to prod? I've been thinking about getting Updater but I haven't yet. Aug 2, 2014 at 15:29
  • Don't use it on all of my production sites but yes, hat's how I would do it. Aug 3, 2014 at 19:49

If the site is not in version control (i.e. prior to me learning it) then I upgrade by using DevDemon updater and taking a backup just in case).

If the site is in version control. I pretty much do what Kristen mentions in her blog post except that I take a db dump locally before deploying and then import that db to the live site during deployment.

  • In my experience, you need to run installer in prod even if you run installer locally. Aug 2, 2014 at 15:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.