[[extend-config-versions]]

=== Synchronizing Configuration Versions

[role="summary"]
How to synchronize the configuration between a development and live site using
the core Configuration Manager module.

(((Configuration,synchronizing between development and live site)))
(((Development site,synchronizing with live site)))
(((Live site,synchronizing with development site)))
(((Configuration Manager module,using to synchronize the configuration between a development and live site)))
(((Module,Configuration Manager)))

==== Goal

Synchronize the configuration between a development and live site.

==== Prerequisite knowledge

* <<understanding-data>>
* <<install-prepare>>
* <<install-dev-sites>>
* <<install-dev-making>>

==== Site prerequisites

* You must have a development copy of your production site. See
<<install-dev-making>>.

* The core Configuration Manager module must be installed on both the
development and production sites. See <<config-install>> for instructions on how
to install core modules.

* You must have changed configuration on either the production or development
site (the _source site_), and want to synchronize the changes to the other site
(the _destination site_). As an example, you can develop a new content type,
fields, and views on your development site, and when it is all working
correctly, deploy the changes to the live site.

* All configuration that should not be synchronized between the source and
destination sites must be stored in configuration overrides in the
_settings.php_ file rather than in the database. See <<install-dev-making>>.

==== Steps

. In the source site, in the _Manage_ administrative menu, navigate to
_Configuration_ > _Development_ > _Configuration synchronization_ > _Export_
(_admin/config/development/configuration/full/export_).

. Click _Export_. Your site will generate an archive of the full site
configuration. Save the file on your local computer.

. In the destination site, in the _Manage_ administrative menu, navigate to
_Configuration_ > _Development_ > _Configuration synchronization_ > _Import_
(_admin/config/development/configuration/full/import_).

. Browse to find the downloaded configuration archive, and click _Upload_. Your
configuration archive will be uploaded to the destination site, and you will be
redirected to the configuration _Synchronize_ page
(_admin/config/development/configuration_) with a message saying your files were
uploaded.

. Verify that the differences shown on the page are what you expect. You may see
configuration items that have been added, deleted, or changed; for changed
items, you can click _View differences_ to see what the changes are.

. When you are satisfied, click _Import all_ to import the configuration
changes.

==== Expand your understanding

* If the changes you have made involve only one configuration item (such as one
view), you can use the single configuration export/import feature to deploy
the change between sites. See <<extend-deploy>>.

* After the step where you export the full configuration from the source site,
you might also want to unpack the archive and commit it to a version control
system, such as Git, to track changes in your site configuration. See
<<extend-git>>.

// ==== Related concepts

==== Videos

// Video from Drupalize.Me.
video::https://www.youtube-nocookie.com/embed/dLUGQk8GKa0[title="Synchronizing Configuration Versions"]

// ==== Additional resources


*Attributions*

Written by https://www.drupal.org/u/jhodgdon[Jennifer Hodgdon].
