Upgrading old Drupal, Part 2: Show module names which causes Drupal update failed, and resolve it.
I was upgrading an old drupal 6 site to drupal 7.
Lots of modules and themes need to be upgraded at the same time. Some are easy, but some not when it comes to dependency issues.
I keep getting Some of the pending updates cannot be applied because their dependencies were not met. error when running Database update. OK I know there's some problems with module, but which module(s)?
This is a follow-up of Upgrading old Drupal, Part 1: No content shown, unable to login, missing modules, and resolve it.
1. Modify update.php, a dirty hack and quick workaround
Go to /usr/share/drupal7, make a backup of update.php.
Start editing update.php
Firstly we need to add a variable to store module names. At line 62 we add a $bad_module = ''; so it become to:
$incompatible_updates_exist = FALSE;
$bad_module = '';
foreach ($updates as $module => $update) {
At line 73 we store the problematic module's name after $incompatible_updates_exist = TRUE;, code is $bad_module = $bad_module. ' & ' . $module;
$incompatible_updates_exist = TRUE;
$bad_module = $bad_module. ' & ' . $module;
continue;
At line 110 we need to show the names after error message. Code became this:
if ($incompatible_updates_exist) {
drupal_set_message('Some of the pending updates cannot be applied because their dependencies were not met. Bad modules: '.$bad_module, 'warning');
}
The diff update.php update.php.backup result should be something like this:
root@Ammon:/usr/share/drupal7# diff update.php update.php.bkup
62d61
< $bad_module = '';
73d71
< $bad_module = $bad_module. ' & ' . $module;
110c108
< drupal_set_message('Some of the pending updates cannot be applied because their dependencies were not met. Bad modules: '.$bad_module, 'warning');
---
> drupal_set_message('Some of the pending updates cannot be applied because their dependencies were not met.', 'warning');
2. Run update.php again
Go to http://YOU_DOMAIN_NAME/update.php to find the module names.
3. Remove bad modules
Remove these modules from /etc/drupal/7/sites/all/modules/ and run update.php again.
4. Login and enjoy!
Login with http://YOU_DOMAIN_NAME/user/login or http://YOU_DOMAIN_NAME/?q=user/login Your loved site should be now ready for you.
Hope this HOWTO can save a tree and a kitten.
- Email this page
- 54219 reads
Add new comment