Using Features to Manage Development

Last updated on
19 February 2019

Drupal 7 will no longer be supported after January 5, 2025. Learn more and find resources for Drupal 7 sites

Features provides a centralized place to manage, configure and export components and write them to code. This convenience makes Features an excellent tool for managing changes between development environments and version control in conjunction with Git, SVN, or other version control systems.

This page lays out an example workflow for managing site development with Features:

  1. Create or change a feature on your local development site.
  2. Update your local feature codebase using drush features-update.
  3. Perform a git status to see which files need to be added to the local repository.
  4. Perform a git add to add the necessary files to your local repository.
  5. Perform a git commit to commit the files locally, then push the code to the remote site.
  6. On the remote site you should now see your feature as a module. To enable the feature, enable the module.

When updating/reviewing existing Features, note the following states that may appear {at least for Drupal 7 Features module}:

  • Default - indicates the feature's configurations in Drupal matches those in the installed feature module code.
  • Overridden - indicates configurations that are defined in the feature module's code have been overridden in the Drupal backend by a user.
  • Needs review - indicates configuration changes that have resulted from assorted Drupal Core or module updates; this is essentially saying that if you re-export your feature, some database settings and dependencies will change to reflect the latest database state.
  • Disabled - indicates a feature module exists in the codebase, but is not enabled.
  • Rebuilding - indicates a feature module was still in the rebuilding state, shown when a component is currently being synced to the database.

Help improve this page

Page status: No known problems

You can: