Drupal upgrade easier
The standard procedure to upgrade Drupal to the latest release is to download it from drupal.org and follow the included UPGRADE.txt.
For administrators using the UNIX shell it may be easier using the attached patch files below instead of downloading and installing the newest complete Drupal release.
To patch your Drupal installation follow UPGRADING.txt up to and including
- for Drupal 6: 5. Disable all custom and contributed modules.
- for Drupal 7: 2. Go to Administration > Configuration > Development > Maintenance mode...
Now go on using this commands:
cd DRUPAL-ROOT- Dry run for testing without modifying anything:
patch -p1 --dry-run < PATCHFILE - Do the real patching:
patch -p1 < PATCHFILE
Your Drupal installation is now upgraded. proceed with UPGRADING.txt from
- for Drupal 6: 9. Verify the new configuration file to make sure it has correct information.
- for Drupal 7: 5. Re-apply any modifications to files such as .htaccess or robots.txt.
Note: Most important step after upgrading is to run update.php as described in UPGRADING.txt above.
Note: If the patch process gets interrupted and leaves a mix of patched and unpatched files you may re-run it by ignoring already patched files after eliminating the reason of the interruption:
patch -p1 -N < PATCHFILE
You may savely remove reject files created during that process:
find . -name "*.rej" | xargs rm
Patch files
Drupal 7
- drupal-7.0-to-7.22.patch
- drupal-7.1-to-7.22.patch
- drupal-7.2-to-7.22.patch
- drupal-7.3-to-7.22.patch
- drupal-7.4-to-7.22.patch
- drupal-7.5-to-7.22.patch
- drupal-7.6-to-7.22.patch
- drupal-7.7-to-7.22.patch
- drupal-7.8-to-7.22.patch
- drupal-7.9-to-7.22.patch
- drupal-7.10-to-7.22.patch
- drupal-7.11-to-7.22.patch
- drupal-7.12-to-7.22.patch
- drupal-7.13-to-7.22.patch
- drupal-7.14-to-7.22.patch
- drupal-7.15-to-7.22.patch
- drupal-7.16-to-7.22.patch
- drupal-7.17-to-7.22.patch
- drupal-7.18-to-7.22.patch
- drupal-7.19-to-7.22.patch
- drupal-7.20-to-7.22.patch
- drupal-7.21-to-7.22.patch
To verify the integrity of the patch files use this MD5 hashes:
MD5 (drupal-7.0-to-7.22.patch) = f980b1d34e11de005ef8fe4e9a445de0 MD5 (drupal-7.1-to-7.22.patch) = 74b8a068431a7d81b72c3b295ff1b7ea MD5 (drupal-7.2-to-7.22.patch) = 06da77c53d0b9b727247f2780692acfd MD5 (drupal-7.3-to-7.22.patch) = ce57413ee63d486c7c832dd8019a4463 MD5 (drupal-7.4-to-7.22.patch) = d1aa2f25012a10adb0fa12afa86c87e6 MD5 (drupal-7.5-to-7.22.patch) = cf26fa51649fb5af2415771b38d2b73a MD5 (drupal-7.6-to-7.22.patch) = 91cacb679ad3ab271797d307eed64404 MD5 (drupal-7.7-to-7.22.patch) = 75afccb5f75e48a054ce5ffc16849fcb MD5 (drupal-7.8-to-7.22.patch) = 38ddfa88eae82317f7542e63f1813e4d MD5 (drupal-7.9-to-7.22.patch) = 16212b5efae85f99735056407ffe57a3 MD5 (drupal-7.10-to-7.22.patch) = f66cbd6e394256c3093b3d49ba88d65c MD5 (drupal-7.11-to-7.22.patch) = bf46f6b71183f832f843b4cc4278a491 MD5 (drupal-7.12-to-7.22.patch) = 02cd84edf521daa1a577fee93faa88d1 MD5 (drupal-7.13-to-7.22.patch) = 554a981be5a4f6de6c9c7ba92f3592a8 MD5 (drupal-7.14-to-7.22.patch) = 9ddf09e761eeae9f7b9f78deda975f8b MD5 (drupal-7.15-to-7.22.patch) = 64ad6c68f0d01a64fe28b0360ea95647 MD5 (drupal-7.16-to-7.22.patch) = 83e8bfc28fed57d4eb74372d2422c556 MD5 (drupal-7.17-to-7.22.patch) = 40387574be1f70d6f4ec40a2739b8ea7 MD5 (drupal-7.18-to-7.22.patch) = e13a2626b827dfec6559c250dfab5151 MD5 (drupal-7.19-to-7.22.patch) = 63ad8a2bd92e48ce25881f060e9ca24a MD5 (drupal-7.20-to-7.22.patch) = 47b4061b093487f47222f642526294d0 MD5 (drupal-7.21-to-7.22.patch) = 87d19bee855f76ec253783de380d76f3
Drupal 6
- drupal-6.0-to-6.28.patch
- drupal-6.1-to-6.28.patch
- drupal-6.2-to-6.28.patch
- drupal-6.3-to-6.28.patch
- drupal-6.4-to-6.28.patch
- drupal-6.5-to-6.28.patch
- drupal-6.6-to-6.28.patch
- drupal-6.7-to-6.28.patch
- drupal-6.8-to-6.28.patch
- drupal-6.9-to-6.28.patch
- drupal-6.10-to-6.28.patch
- drupal-6.11-to-6.28.patch
- drupal-6.12-to-6.28.patch
- drupal-6.13-to-6.28.patch
- drupal-6.14-to-6.28.patch
- drupal-6.15-to-6.28.patch
- drupal-6.16-to-6.28.patch
- drupal-6.17-to-6.28.patch
- drupal-6.18-to-6.28.patch
- drupal-6.19-to-6.28.patch
- drupal-6.20-to-6.28.patch
- drupal-6.21-to-6.28.patch
- drupal-6.22-to-6.28.patch
- drupal-6.23-to-6.28.patch
- drupal-6.24-to-6.28.patch
- drupal-6.25-to-6.28.patch
- drupal-6.26-to-6.28.patch
- drupal-6.27-to-6.28.patch
To verify the integrity of the patch files use this MD5 hashes:
MD5 (drupal-6.0-to-6.28.patch) = 71454c94fb277f67e5f583197e529ae5 MD5 (drupal-6.1-to-6.28.patch) = 03983fde932b427ff42feb8a37ec7f8c MD5 (drupal-6.2-to-6.28.patch) = 1f6fe2c8e3a06f04dc7fed509ca09d65 MD5 (drupal-6.3-to-6.28.patch) = b84157d7f039532e0625b3ee475cdab5 MD5 (drupal-6.4-to-6.28.patch) = 2940f854d0d426d368dfc87ab8aae51a MD5 (drupal-6.5-to-6.28.patch) = cc66ab5088a31efd0cbc30cc5410e269 MD5 (drupal-6.6-to-6.28.patch) = 1a3512977fcfbaa5441b6fef77b6daa4 MD5 (drupal-6.7-to-6.28.patch) = 1ec01a6a9ba330e7ce688b9cd3fc241f MD5 (drupal-6.8-to-6.28.patch) = 67873c920f69c7ffe8e0c3dab2bf8cf8 MD5 (drupal-6.9-to-6.28.patch) = e5516f900e90a58b60eb0102c72f0f83 MD5 (drupal-6.10-to-6.28.patch) = 224958120c7ea7f4a0b5c1c7af0de02a MD5 (drupal-6.11-to-6.28.patch) = 2820dd6fbab3349d59a3046ab5d8d852 MD5 (drupal-6.12-to-6.28.patch) = 1bfd1dfe72dd6c7aa3716d5cc179e6e0 MD5 (drupal-6.13-to-6.28.patch) = b25cf8f848c39ab1f3b107642a928eb0 MD5 (drupal-6.14-to-6.28.patch) = 7bf9fedc6ef6cd4c6199f3219ca71ddb MD5 (drupal-6.15-to-6.28.patch) = 309ad484f2821d59fc366bc24aeb7f14 MD5 (drupal-6.16-to-6.28.patch) = d625f3212a540a3c583ca27682f82f46 MD5 (drupal-6.17-to-6.28.patch) = 6a2610f7b6b93db37a149dcfbbd14932 MD5 (drupal-6.18-to-6.28.patch) = 898f9f387421f61ae4563e061fde0dc2 MD5 (drupal-6.19-to-6.28.patch) = 17bb24f097f6f128565a46c9daa0cc07 MD5 (drupal-6.20-to-6.28.patch) = 82f31b62d7dd07b70d3b20625cf64dbc MD5 (drupal-6.21-to-6.28.patch) = dcfcbaf76ec3a13b1ff4bd4a648b451e MD5 (drupal-6.22-to-6.28.patch) = d82ae95e6090819d281cdd29f039b46d MD5 (drupal-6.23-to-6.28.patch) = c2d6a4d178a69edf1229a82d3c510cb6 MD5 (drupal-6.24-to-6.28.patch) = f30eaafbf031a92c1ae66cc15fc76250 MD5 (drupal-6.25-to-6.28.patch) = ac79292f71075185dc5f6b35d50d52ed MD5 (drupal-6.26-to-6.28.patch) = 1557f233510a1c4694abe2ba6e084da3 MD5 (drupal-6.27-to-6.28.patch) = bf1078bd6231f896ae41f8e117f6ca34
Drupal 5
- drupal-5.0-to-5.23.patch
- drupal-5.1-to-5.23.patch
- drupal-5.2-to-5.23.patch
- drupal-5.3-to-5.23.patch
- drupal-5.4-to-5.23.patch
- drupal-5.5-to-5.23.patch
- drupal-5.6-to-5.23.patch
- drupal-5.7-to-5.23.patch
- drupal-5.8-to-5.23.patch
- drupal-5.9-to-5.23.patch
- drupal-5.10-to-5.23.patch
- drupal-5.11-to-5.23.patch
- drupal-5.12-to-5.23.patch
- drupal-5.13-to-5.23.patch
- drupal-5.14-to-5.23.patch
- drupal-5.15-to-5.23.patch
- drupal-5.16-to-5.23.patch
- drupal-5.17-to-5.23.patch
- drupal-5.18-to-5.23.patch
- drupal-5.19-to-5.23.patch
- drupal-5.20-to-5.23.patch
- drupal-5.21-to-5.23.patch
- drupal-5.22-to-5.23.patch
To verify the integrity of the patch files use this MD5 hashes:
MD5 (drupal-5.0-to-5.23.patch) = 13235f0c50caf2f0366403563053fbba MD5 (drupal-5.1-to-5.23.patch) = e2d5fc4ec6da1f1db2f83204eef03160 MD5 (drupal-5.2-to-5.23.patch) = 13da34e36fb58f422c86c1574e26719b MD5 (drupal-5.3-to-5.23.patch) = dd826e692ab5e9e50ce55feac0b82673 MD5 (drupal-5.4-to-5.23.patch) = e44a1f00549c5d39bbe359772db4ec9d MD5 (drupal-5.5-to-5.23.patch) = 4f06344f52f3c476e458f01c4925e987 MD5 (drupal-5.6-to-5.23.patch) = bd31200144a9b716e4a1cad1930796f1 MD5 (drupal-5.7-to-5.23.patch) = 598e037a8840d79509ea5c247dff975e MD5 (drupal-5.8-to-5.23.patch) = 2a53dedeb3b00c679ccb0dae44379789 MD5 (drupal-5.9-to-5.23.patch) = 8dd63096cf7c5dd73e968f770f56301b MD5 (drupal-5.10-to-5.23.patch) = a6127a53d945659efde17a31e8037b79 MD5 (drupal-5.11-to-5.23.patch) = 841eabce62cac99f98e77de733aeb7c6 MD5 (drupal-5.12-to-5.23.patch) = ddb82f96ad7915e34111df4706237c11 MD5 (drupal-5.13-to-5.23.patch) = 41bf265e25a1d6c9324e4f6c7b5ff067 MD5 (drupal-5.14-to-5.23.patch) = 7c48dca7dd10533fe65c895d33c7be56 MD5 (drupal-5.15-to-5.23.patch) = ae1a31e80c3b24dfa1710adecbd1cce9 MD5 (drupal-5.16-to-5.23.patch) = 72e25e1c680b75cbc1f8b303c4d97cba MD5 (drupal-5.17-to-5.23.patch) = 0fee19e0808ec863284618ce8f506d6c MD5 (drupal-5.18-to-5.23.patch) = 997f35d8372277203e5129e9bc684f81 MD5 (drupal-5.19-to-5.23.patch) = 6189d7c3c3139647dfd519b727d8f12f MD5 (drupal-5.20-to-5.23.patch) = 33d48157e036411fd336a5d9023c8644 MD5 (drupal-5.21-to-5.23.patch) = 86cb8be7e01f576177765d670332e4fb MD5 (drupal-5.22-to-5.23.patch) = 94488c667c2c68d48438d81129e3edca
Upgrade major releases of Drupal
- Drupal 5 to 6: drupal-5.23-to-6.28.patch
- Drupal 6 to 7: drupal-6.28-to-7.22.patch
To verify the integrity of the patch files use this MD5 hashes:
MD5 (drupal-6.28-to-7.22.patch) = fe237c002194bb9101987f62b66f1ec6 MD5 (drupal-5.23-to-6.28.patch) = 6c9caae0399f5f47922da6825059b5ed
Kommentare
THANKS!
Thank you so much for this page. I used to hate the "Update of the week" from drupal. With these patches it is a SNAP!
JN
drupal-5.14-to-5.15.patch works properly
Thank you for your great job. I have used the drupal-5.14-to-5.15.patch on a multi-site installation and it worked without any errors.
Thanks a lot dude! With your
Thanks a lot dude! With your work updating drupal it really takes just only a second! Thanks and thanks again :)
neat!
Thank you very very much.Worked without a hitch.
Thank you!
Once more, thank you so much for this page! Using these patches has really saved me lots of time when upgrading our system to 6.12.
Big time-saver!
I just upgraded three of my drupal sites using your patch files, and for once, they went smoothly, and QUICKLY!
Thank you!
Thank you for providing all
Thank you for providing all this useful stuff on your page.
...
... runs like Schmidts cat!!!
How to use, I don't understand the procedure
Hi,
I have a windows based laptop from which I am going to try to upgrade my site which resides on a linux box. I currently use 6.6 and would like to upgrade to 6.14.
Can someone here please give me a step-by-step. I have been regretting not knowing enough and installing drupal. And upgradations are the only reasons. Please help.
thanks
Navs
Nice work! Maybe a little problem on 6.9->6.14 ?
Nice work, really nice work.
You saved me hours every upgrade!!
Im afraid to ask you, but did you check the 6.9 to 6.14 patch? Because im getting some errors and, since before it went smooth all the times, im wondering if maybe you upload a wrong file (i do it all the time ;) ).
Thanks again
No problem
Tried it with a fresh 6.9 and the patch went through without a hitch. May be you did some changes to your 6.9 files in the past?
Thank you
I favor quick and simple approaches, and eventually gave yours a try with 6.14-to-6.15. For me, this is definitely the way to go. Thank you very much indeed!
Smooth update!
Thanks for the great patch set - the update was smooth!
Thanks!
...a lot of them. I was choosing a CMS, and I was thinking about dropping drupal just for the upgrade complexity (hey, in wordpress is just clicking a button...). You saved the day.
This is *the* recommended way
This is *the* recommended way of upgrading Drupal! I just upgraded from 6.15 to 6.16 and it worked flawlessly and was over in a couple of methods. It's so easy compared to the method suggested in upgrade.txt (download tarball, remove all old files, unzip tarball... no thanks!).
The instructions are pretty simply but because they reference upgrade.txt I thought I would share the entire process here as a quick overview (please make sure you still read upgrade.txt and instructions on this page):
1. backup drupal db
2. backup drupal root directory and sub directories
3. Make sure you are logged in as admin (uid=1)
4. Place site in maintainece mode, /admin/settings/site-maintenance
5. If using a custom or contributed theme, switch to a core theme, such as Garland or Bluemarine.
6. get latest patch file from http://fuerstnet.de/en/drupal-upgrade-easier
6. cd your-drupal-directory
7. Dry run: patch -p1 --dry-run < patchfile
8. Patch: patch -p1 < patch-file
9. Verify the new configuration file to make sure it has correct information. sites/default/settings.php
10. Run update.php by visiting /update.php
11. enable usual theme
12. Finally, return your site to "Online" mode so your visitors may resume
That's it! Thanks Bernhard Fürst - you're a champ!
The dry run is failing. Suggestions?
I'm seeing...
[...]$ patch -p1 --dry-run < drupal-6.14-to-6.16.patchpatching file .htaccess
Hunk #1 FAILED at 3.
Hunk #2 FAILED at 66.
Hunk #3 FAILED at 113.
3 out of 3 hunks FAILED -- saving rejects to file .htaccess.rej
...
can't find file to patch at input line 2288Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Naur drupal-6.14/modules/node/node.info drupal-6.16/modules/node/node.info
|--- drupal-6.14/modules/node/node.info 2009-09-16 21:40:27.000000000 +0200
|+++ drupal-6.16/modules/node/node.info 2010-03-04 01:20:08.000000000 +0100
--
Any ideas on how to solve?
Check the Drupal version
I tried the drupal-6.14-to-6.16.patch file with a fresh Drupal 6.14 - no problem. Run the
patchcommand from within the root of your Drupal installation. Also make sure your Drupal version is at 6.14 (check the included CHANGELOG.txt). Did you modify the Drupal core files?Thanks... I did it the old school way
I wasn't able to successfully patch 6.14 to 6.16 so I just did it the old-fashioned way. :)
Thanks, anyway. :)
Thanks for your work
I tried to diff a drupal installation, when i discover your out-of-the-box-working ones.
Nice job !
I love you for sharing this.
I love you for sharing this. A much more reasonable way for minor ugprades
6.17 patch
Thanks much for all the previous patches. They have worked well. Are you coming out with the patch for 6.17 soon, or should I roll my own instead?
Must have missed that. It is
Must have missed that. It is online now - thanks for pointing me to it.
patch file in root 14->17
Is this correct? It implies, I think, that you have left the 14->16 patch file somewhere it shouldn't be when you did the diff.
diff -Naur drupal-6.14/drupal-6.14-to-6.16.patch drupal-6.17/drupal-6.14-to-6.16.patch
--- drupal-6.14/drupal-6.14-to-6.16.patch 2010-03-04 09:22:40.000000000 +0100
+++ drupal-6.17/drupal-6.14-to-6.16.patch 1970-01-01 01:00:00.000000000 +0100
Patch complains it's going to remove it, declaring at the same time it doesn't exist!
Dick
You are right. Corrected
You are right. Corrected patch file is online now. Only
drupal-6.14-to-6.17.patchwas affected.Now THAT is handy
Awesome job friend :) This is a very convenient way to update. I've been using Drush to my core updates, but it involves a lot more directory/file-moving (danger!). I use git, so if patches break, it's no biggie. Thanks!
I just used this upgrade and
I just used this upgrade and was just reminded how easy and straightforward it is.
Great work, dude, a lot of us can vouch that this is pretty important code you are working on :)
New patch
Hi, first of all, THANK YOU VERY MUCH for this one! It's so smooth!
A question for you: When the patch for drupal 6.19 to 6.20 will be released ?
Thanks in advance for your time
Thanks!
You provide a great service!!!
Thanks! And an update error
Hi there, thanks for providing these patches! This patch update method is definitely the easiest for me.
However, I had a bit of an issue with my 6.19 -> 6.20 upgrade. The dry run didn't give me any significant errors that I couldn't work around. So went ahead and applied the patch. However, the patch process got up to this point and failed:
...
patching file modules/user/user.module
patching file robots.txt
patching file sites/default/default.settings.php
patch: **** Can't remove file sites/default/default.settings.php : Permission denied
The problem is that it failed and stopped, leaving me with a half patched system. Fortunately the only remaining items were a few default theme folders, which I manually copied over to my root. But are there any workarounds so that this doesn't happen again?
Thanks a lot!
No write access to this file?
The message Permission denied does mean you do not have write access to the file sites/default/default.settings.php. Make sure, you either own it and it is writable by you or temporarily (and as the user who owns it) set it to writable by anyone before patching.
re: No write access to this file?
Thanks for the reply Bernhard.
Yes, this file was not writeable. I guess I was just wondering if there is any way to make the process a bit more failsafe, so that it continues patching the rest of the files even if there is an error.
re: No write access to this file?
I had the same problem with a single site configuration (where the settings.php is in sites/default and not in sites/example.com). I was wondering because with the --dry-run option I didn't get any error.
I guess, that the folder containing settings.php will be set to read only by the drupal installation script.
So you may run
chmod u+w sites/default/in drupal root before patching drupal andchmod u-w sites/default/after patching.A++ would patch again.
The standard upgrade instructions made me cry myself to sleep at night, but this patch file is absolutely amazing. I have my site running on a new core after only 10 minutes.
Thank you so much! :D
disable selinux first
If you use CentOS or Redhat with selinux, be sure to turn selinux either off or to permissive mode before patching.
Thanks for the patch,
Patch 6.x to 7.x?
Hi! I just patched Drupal to 6.20 and want to thank you - again! - for this great tool. I was wondering if you have any plans of releasing a patch for drupal 6.20 to 7.0? That would mean a lot to use who manage drupal on a daily basis. Thank you again.
Please try with caution
I created 2 patch files (see above):
When testing against the corresponding lower version it did look 100% good. Please try with caution anyway!
patch: **** strip count l is
patch: **** strip count l is not a number
Checked the hashtag, and it matches.
I'll be honest, I tried
I'll be honest, I tried patching while I was tired, this is really a no no. I've used quite a few of these patches before. The 6.22 to 7.4 took a wrong turn. I have a multisite install and I had all sites in off-line mode but I did neglect to set default themes. My default.settings.php file was unwriteable as well. Is there a logical way to resolve my issue ?
Currently I'm receiving the following errors:
Notice: Use of undefined constant DRUPAL_ROOT - assumed 'DRUPAL_ROOT' in /home1/.../public_html/includes/bootstrap.inc on line 1971
Warning: require_once(DRUPAL_ROOT../includes/errors.inc) [function.require-once]: failed to open stream: No such file or directory in /home1/.../public_html/includes/bootstrap.inc on line 1971
Fatal error: require_once() [function.require]: Failed opening required 'DRUPAL_ROOT../includes/errors.inc' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home1/.../public_html/includes/bootstrap.inc on line 1971
Try searching drupal.org
At my tests (vanilla 6.22 patched using drupal-6.22-to-7.4.patch) the default.settings.php is writable.
For the DRUPAL_ROOT problem try searching drupal.org, i.e. http://drupal.org/node/1009966. Looks like a 6.x -> 7.x upgrading issue.
I've been reading all that
I've been reading all that info and haven't been able to get a good handle on where to set the define("DRUPAL_ROOT", since I dont have an external script, would I make this change in the patch and run it again ?
Follow the standard upgrade path
I indeed pointed you to something not helpful for your situation, sorry! I guess something else is messed up in your setup. You rather should follow the standard upgrade path as described in drupal-7.4/UPGRADE.txt than using the patch file.
Malformed patch error when upgrading 7.0 to 7.2
You are doing an awesome job! I am using your patches all the time. Today was the first time when I got an error when doing a dry run.
When upgrading 7.0 to 7.2, I get this:
Patching file misc/watchdog-error.png using Plan A...
patch: **** malformed patch at line 6163: diff -Naur drupal-7.0/misc/watchdog-ok.png drupal-7.2/misc/watchdog-ok.png
Thanks in advance!
Got no error when throwing
Got no error when throwing the patch against a vanilla Drupal 7.0 as described above. Please make sure the patch file you downloaded does not changed somehow at your machine: check the MD5 hash using `md5` or `md5sum`.
I downloaded vanilla Drupal
I downloaded vanilla Drupal 7.0, extracted it and ran the patch against it with no problems. So something else was fishy with my install. My bad. Thank you!
Thank you very much. This is
Thank you very much. This is AWESOME!!! this way its also easy to maintain any core patches as i dont have to reapply them!
Thanks again for your great work
Thank you
Thank you for this amazing job!
upgrade from 6.20 to 6.22 for multisites
can i use the above described approach to upgrade my drupal multisites from drupl 6.20 to 6.22? if can't, how should i do this? thanks.
Patching Drupal will upgrade
Patching Drupal will upgrade all Sites in your
sites/directory. Make sure you run update.php for every site after upgrading.Drupal 7.7 to 7.8
Any chance of getting a 7.7 to 7.8 update? I find that this method of updating drupal sites more convenient compared to their manual download upgrade.
Thanks - must have missed
Thanks - must have missed that release.