The module provides utilities for controlling the module status of all modules in the whole installation by a single drush command. The configuration is done by defining "master modules". "Master modules" are (in most cases) custom modules or features, that provide dependencies to all modules that are needed to run the site. In combination with Features and maybe some custom code and scripts the whole site configuration can be managed via that approach.
drush master-status shows the state of all modules that are "master", required by master modules or are redundant (enabled but not required).
drush master-execute ensures all master modules and their requirements by enabling them. It also disables and uninstalls all modules that are not required by the master.
Configuration is mainly done in the settings.php by setting the "master_modules" variable. There is also support for different scopes (e.g. stage environments like local, integration, live, ...) by defining additional sets within the "master_modules" array. The default scope is called "base" and any other scope inherits from that scope.
Do avoid certain modules being uninstalled (e.g. because the database content might be needed at a later time) you also can set a "master_uninstall_blacklist" for each scope.
drush master-status --scope=local
drush master-status --status=redundant --pipe
drush master-execute --scope=local
drush master-execute --scope=local --no-disable --no-uninstall
// When setting the current scope, --scope can be omitted.
drush master-set-current-scope local
drush master-status --scope=local drush master-status --status=redundant --pipe drush master-execute --scope=local drush master-execute --scope=local --no-disable --no-uninstall // When setting the current scope, --scope can be omitted. drush master-set-current-scope local drush master-status
For using the master module, you have to set a master configuration. With the command
drush master-export [--scopes=local,stage,live] you can export an initial configuration, representing the current module state of your installation.
Code like this shall be put in the settings.php:
$conf['master_version'] = 2; $conf['master_modules'] = array( 'base' => array( 'mymasterfeature1', 'mymasterfeature2', ), 'local' => array( 'devel', 'views_ui', 'field_ui', ), 'live' => array(), ); $conf['master_uninstall_blacklist'] = array( 'base' => array(), 'live' => array('migrate'), ); $conf['master_allow_base_scope'] = TRUE; // Defaults to FALSE.
Absent and obsolete modules
With the latest release, there are two new functionalities for dealing with absent or obsolete modules. With
drush master-removables you can find module folders, that do not hold any active modules anymore, and therefore might be safe to be removed from the project. You should be aware, that you have to uninstall all those modules first from every instance your code-base is running.
With the second command
drush master-absent you can identify modules, that have been erased from the project, without proper deactivation or uninstallation, or simply are required by the current Master configuration.
The administrative interface has moved to a separate project: Master UI.
The previous version (for Drupal 6) was mainly controlled via an admin page. That way one could manage the modules "manually" via the UI. But in the new version the main approach was to better be able to use it in a multi-stage environment and an automated deployment process, so the whole UI stuff (currently) is simply replaced by the drush commands.
You still can download the D6 version, but there is no further development planned for D6.
We are currently working on a standalone drush command in the
7.x-3.x branch. When it is ready the release will also support Drupal 8 and maybe some different configuration format. Please file any issues for other ideas.
Master Joda Icon: designed by Artua.
- Maintenance status: Actively maintained
- Development status: Under active development
- Module categories: Utility
- Reported installs: 765 sites currently report using this module. View usage statistics.
- Downloads: 13,574
- Automated tests: Enabled
- Last modified: December 23, 2014
- Stable releases are covered by the security advisory policy.
Look for the shield icon below.