Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: Opensolr Search 4.5.0 Minor update available for module opensolr_search (4.5.0). Release: Block Layout Accordion 1.0.2 Minor update available for module block_layout_accordion (1.0.2). Release: Canvas interactive toggle 1.0.2 Minor update available for module canvas_interactive_toggle (1.0.2). Release: Views HTTP Client 1.0.2 Minor update available for module views_http_client (1.0.2). Release: Block Layout Accordion 1.0.1 Minor update available for module block_layout_accordion (1.0.1). Release: Canvas interactive toggle 1.0.1 Minor update available for module canvas_interactive_toggle (1.0.1). Release: Video.js (HTML5 Video Player) 10.0.0-alpha1 First alpha version released for module videojs (10.0.0-alpha1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Release: Audit Trail 1.0.0-alpha7 New alpha version released for module audit_trail (1.0.0-alpha7). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Upsync

No security coverage Drupal 8–10 · not 11
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

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

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

Releases

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