====== Upgrading Drupal (zip file method) ====== These instructions are specific to when you have a live site, a development machine, and both are set up for git push/pull ===== running update.php ===== Several places below reference running update.php. This means going to your yoursite.com/update.php after logging in as an administrator. If you are unable to log in, you can force access to update.php by editing the settings.php file in drupal/sites/yoursite/settings.php and set the following line to true (don't forget to change it back after updates are complete) $update_free_access = FALSE; change to: $update_free_access = TRUE; ===== Initial prep on dev machine ===== * dev machine must connect to its own database, and not the live site database * working copy must be clean (no outstanding changes) * sync both your dev drupal database and all files with the live site, if you haven't already ===== Prep for Core updates on dev machine ===== * follow [[#Initial prep on dev machine]] above * download latest drupal core zip file to dev machine and extract * put your dev machine working copy drupal in maintenance mode by logging in (STAY LOGGED IN FOR THE FOLLOWING STEPS) * in your working copy drupal, delete all files and folders inside drupal **EXCEPT** for .git and sites/ * copy all files from extracted drupal core **EXCEPT** sites/ folder into your working copy where you just deleted some * fix .htaccess, .gitignore, and any other files modified by us in Core (you should be using git to track things like this) * go back to the drupal administration pages on your dev machine and run update.php * if no errors are detected, continue testing your site to make sure everything in your site AND with your modules are still working * if everything is ok, make a git commit with all changes for Core updates (you can start a new branch if you prefer) ===== Prep for Module updates on dev machines ===== * follow [[#Initial prep on dev machine]] above * you can either manually download and replace module files or use the Update module for some, if they support it * after updating desired modules, run update.php * if no errors are detected, continue testing your site to make sure everything in your site AND with your modules are still working * if everything is ok, make a git commit with all changes for Module updates (you can start a new branch if you prefer) ===== Updating the live site ===== * perform each of the above sections first * **for all sites ran by this drupal instance**, backup database and drupal directories, including sites directory * make sure dev machine git commits have been pushed to shared repo * log into live site and place it in maintenance mode * pull git changes from shared repo * run update.php * take site out of maintenance mode * flush all caches just for good measure