CMS and Configuration Migrator
Quicklinks
Note: click on any image for an enlargement and full image gallery that you can easily swipe through!
Introduction
The Genmato Configuration Versioning extension is a huge efficiency saver in any Magento webshop project that uses both test and production environments. With a separate test environment (also called staging environment) developers and merchants can test layout changes, new extensions, upgrades etc.. before deploying them to production. We advise any Magento merchant or developer to create a separate test environment next to their production environment (live webshop) so all changes can safely be tested without disturbing production or risking loss of sales.
But how do you migrate the changes from your test environment to the production environment without having to do the same thing twice or even omitting some changes? For file changes there are numerous options: creating and applying patches, copying files, or using versioning software like SVN or GIT. But how do you migrate configuration changes that have been recorded in the test database to the live database?
- Copying the test database to live? That's not an option since sales data on test will (hopefully ;-) not be as up-to-date as the live database.
- Using Magento itself? No, Magento doesn't provide any solution out of the box for this either.
- So what do I need? What you need is an extension that could capture configuration and CMS changes in the test environment and could inject them into the live database: well surprise ;-) that's exactly what the Genmato Configuration Versioning extension does! And for Magento developers who work with versionioning software like SVN or GIT: all recorded changes will be written into Magento setup files, so your versioning system will pick them up as it would with any new or changed Magento extension file.
This manual should make Installment. Configuration and Usage easy for you. If you have suggestions that can make your Magento life easier please email to [email protected] and we’ll help you trough. If you do not wish to install and setup the extension by yourself please note that we do offer paid Installation and Configuration Support (you can choose both as a separate option when ordering the extension).
Installation Guide
Backup your database and site
Make sure you have a complete backup of both your Magento database and your installation files. The changes are small that a problem during installation causes a big problem with your installation, but it is always good to have a backup available where your can rely on.
Disable Magento Compiler
If you are using Magento’s compilation mode on your store, you must first disable it. Go to System->Tools->Compilation. If the compiler status is ‘Disabled’, you are ready for the next step. If not, click the ‘Disable’ button on the right hand side of the screen.
Upload extension files
Unzip the downloaded extension package and upload the extracted files with your favorite FTP client to the root of your Magento installation.
Clear Magento cache
Navigate to System-> Cache Managment. Select all available 'Cache Types', select the mass-action 'Refresh' and click 'Submit' to refresh all caches.
Login into Magento Backend
After your refreshed the cache, you need to logout and login again.
Configuration
Admin sections for the Genmato Configuration Versioning extension
You’ve installed the Configuration Versioning extension and have logged in into the Magento admin. The following new menu items have been added:
- Tools -> Configuration Versioning.
This is the page where all configuration changes will show up. Select the config changes and start the full export wizard to generate the necessary setup scripts that will inject the changes in your live database. We will explain this in full in the "usage section"below. - System -> Configuration
By default By default configuration changes will NOT be recorded, as you see in following screenshot the settings for alle sections default to "no" . You will have to enable Configuration Versioning for all different scopes yourself. Why? Because we want to give you full control over which configuration changes you would like to record!
Configuring the Genmato Configuration Versioning extension
All configuration is done via the Gennmato Configuration Versioning tab in the Magento System -> Config section. We'll walk through the options.
- Setup file configuration
The setup file is the file which contains the recorded Configuration changes that you would like to copy from test to live. Here you can configure specific behaviour when the file is generated. The following options can be configured.- Save new version on download.
This option is specific to the download option and allows you to decide whether you want the Configuration Versioning to increase the version number each time you download a configuration change.. If you work with several development / test installations of a project we advise you to leave this setting as it is ( " no " ), so the version number will not be increased automatically at download. We created this option specifically for Release Masters who wish to be in full control (they usually do ;-) of the generated setup scripts. The downloaded setup scripts can than be merged into one large script which will be executed in at once in one setup-run. - Hide confirm pop-up on Changelog action
Here you can enable the (in)famous "Are you sure" pop-up. If enabled, this pop-up will show up ievery time you generate a Config Change file (see Usage section below). If you are not sure what you do or are the type of person who likes to be on the safe side ;-) we advise you to enable this. By default we decided to avoid irrititating pop-ups in the back-end (we made our point ;-).
- Save new version on download.
- Config Data Changelog Configuration
When you enable this all new and changes configurations settings under System -> Configuration will be recorded. So all settings from the General Tab to the Advanced tab will be recorded one this setting is enabled. - CMS Page Changelog Configuration
When you enable this, all CMS page changes under CMS -> Pages (see screenprint) will be recorded by the Configuration Versioning extension. - CMS Block Changelog Configuration
When you enable this, all CMS statick block changes under CMS -> Static Blocks (see screenprint) will be recorded by the Configuration Versioning extension. - Transactional email Changelog Configuration
When you enable this, all transactional email changes under System -> Transactional emails (see screenprint) will be recorded by the Configuration Versioning extension. - Design Change Changelog Configuration
When you enable this, changes to any of the settings under System -> Design (see screenprint) will be recorded by the Configuration Versioning extension.. System Design is the config section where temporary design changes e.g. for sales actions or seasonal design changes can be configured in advance within a specified time frame. This setting should not be confused with the general design settings under System -> Configuration. Changes to these settings will be recorded when you enable the Config Data Changelog Configuration (see above). - Newsletter Template Changelog Configuration
When you enable this, all newsletter template changes under Newsletter -> Newsletter templates (see screenprint) will be recorded by the Configuration Versioning extension. - Custom Variable Changelog Configuration
When you enable this, all newsletter template changes under System -> Custom Variables (see screenprint) will be recorded by the Configuration Versioning extension. - Customer Group Changelog Configuration
When you enable this, all newsletter template changes under Customer -> Customer Groups (see screenprint) will be recorded by the Configuration Versioning extension. - Checkout Agreement Changelog Configuration
When you enable this, new and changes to existing Checkout Agreements under Sales -> Terms & Conditions (see screenprint) will be recorded by the Configuration Versioning extension. - Tax Class Changelog Configuration
When you enable this, new and changes to Tax Classes under Sales -> Tax -> Customer Tax Classes and Product Tax Classes (see screenprints) will be recorded by the Configuration Versioning extension. - Tax Rate Changelog Configuration
When you enable this, new and changes to existing Tax Rates under Sales -> Tax -> ManageTax Zones & Rates (see screenprints) will be recorded by the Configuration Versioning extension. - Tax Rule Changelog Configuration
When you enable this, new and changes to existing Tax Rates under Sales -> Tax -> ManageTax Rules (see screenprints) will be recorded by the Configuration Versioning extension.
Usage
This section describes the CMS and Configuration Migrator Dashboard or Configuration Versioning Changelog in your Magento admin.
The Changelog is the overview of all recorded CMS and Configuration changes.
This is the actual "dashboard" from where you can
- View all recorded setup scripts (filtered by Status or Action)
- Perform different actions on the recorded changes (Generate update Script, Download update script, Revert change, Archive change, Delete changelog entry)
- Perform the Full Export Wizard
Examples / Use cases
Before you start make sure that you have enabled the config changes that you want to record in the Configuration Section (see above).
Changing a CMS Page and adding an new CMS Static Block
- Change an exisiting CMS Page and add a new CMS Static Block (see screenprints).
- Generate a setup script
If you enabled the Configuration Versioning settings to record CMS Pages and Static Blocks (see the Configuration section above) you will see the changes under the Tools -> Configuration Versioning section (see screenprint)Check the checkboxes for the changes you want to generate a setup script for, choose the type of setup script (Generate update script or Download update script) and click on the "Submit" button.
When you see the succesmessage Total of X record(s) were saved to upgrade script number X you have succesfully generated a new setup file which can be injected into your Magento production database.
You newly created file has been placed into the folder app/code/local/Genmato/Setup/data/genmato-setup/ (see screenshot). You can deploy this with any versioning system from your test or development environment to the production environment.