Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). Varbase Media Header 9.2.1 Minor update available for module varbase_media_header (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

Upsync

No security coverage
View on drupal.org

Upsync simplifies Drupal deployments by allowing safe, selective installation of modules and synchronization or deletion of specific configuration items. This utility can be integrated into update hooks or deployment scripts to manage changes without risking full configuration imports.

🧩 What is Upsync?

Upsync is a developer-focused utility module designed to simplify and stabilize deployment tasks. It allows you to perform selective module installations and config syncs/deletions without relying on full config imports or UI interactions.

🔥 Why use it?

Drupal's standard config sync process can often be risky on large or long-lived sites - especially when:

  • Syncing all config can unintentionally overwrite production changes.
  • New modules are not detected during update hooks or Drush runs.
  • You want a repeatable, update-hook-safe way to apply only what's needed.

Upsync solves these problems by providing services you can call within update hooks or deploy scripts to:

  • Install specific modules safely
  • Sync or delete selected config items
  • Collect and return results for logs, reports, or testing

⚙️ How to use

1. Install the module
Enable the upsync module just like any other:
drush en upsync

2. Use it in an update hook or deployment script
Here's an example of usage inside an update hook:

function my_module_update_9001() {
  $upsync = \Drupal::service('upsync.manager');

  $result = $upsync
    ->install(['my_custom_module'])
    ->syncConfigs([
      'views.view.my_view',
      'user.role.content_editor',
    ])
    ->deleteConfigs([
      'field.storage.node.legacy_field',
    ])
    ->getResults();

  return implode(PHP_EOL, array_merge(
    $result['messages'],
    $result['errors'],
  ));
}

You can also log results or send them to a dashboard, CI runner, or error reporting system as needed.

🛣️ Roadmap

Planned improvements and additions:

✅ Core support for:
- Module installation
- Selective config sync
- Selective config deletion
- Result collection with categorized messaging

🕓 Coming soon:
- Support for applying pending entity definition updates
- Unit test coverage

Activity

Total releases
2
First release
Jun 2025
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 2
Maintenance
Dormant

Releases

Version Type Release date
1.0.0 Stable Jun 23, 2025
1.0.x-dev Dev Jun 23, 2025