Persistent Update API

Categories

Component ID

2423957

Component name

Persistent Update API

Component type

module

Maintenance status

Development status

Component security advisory coverage

covered

Downloads

11275

Component created

Component changed

Component body

The Persistent Update API module adds a hook (HOOK_persistent_update()) for persistent updates, updates that are run every time you access update.php or run 'drush updb'.

The module was created for use with a Features driven deployment model so that features would be reverted without human interaction, but can be used for other solutions.

 

Example

/**
 * Flush Drupal caches and revert feature components.
 */
function hook_persistent_update() {
  $module = basename(__FILE__, '.install');
  $info   = system_get_info('module', $module);

  // Enable all dependencies.
  module_enable($info['dependencies']);

  // Forcefully clear Features caches.
  module_load_include('inc', 'features', 'features.export');
  foreach (array_keys($info['features']) as $component) {
    if ($component == 'features_api') {
      continue;
    }

    features_get_components($component, NULL, TRUE);
    features_include_defaults($component, TRUE);
    features_get_default($component, $module, TRUE, TRUE);
  }

  // Build components list for feature revert.
  $revert[$module] = array_keys($info['features']);

  // Flush all standard Drupal caches.
  drupal_flush_all_caches();

  // Revert all feature component.
  features_revert($revert);
}