Many site admins wish to backup, create snapshots, stage and deploy sites, both on the same server as well as on external servers. Below is an attempt at listing the features of modules that support such activity.
It should be noted that there are big differences between content, code, and configuration deployment. Some of these modules are designed for a particular use only, some work for a few.
UPDATE 21 Jul 2013
Many changes have taken place in this important topic, and it is time to reflect them in this section. New promising modules have emerged, and others has expanded their capacities.
In deployment of code, the use of Features module and Drush Make (now part of Drush) seems clearly the mainstream, with the additional use of installation profiles (you can dive in the installation profiles code of distributions like Open Atrium or ERPAL to see all items working together). Features is also an almost imperative tool in the development workflow of projects that involves several simultaneous developers, and several environments (local, dev, qa, test, prod...), since it puts everything into code, making it suitable to use versioning.
If you want to deploy the entire site configuration instead of split it into case-uses, a very convenient alternative to Features is Drush CTools Export Bonus.
In deployment of (bulk) content, since this task is very related to importing data, many options are available, from strictly pure pushing deploy approach, like the Deployment module, to classical and user-friendly export/import approaches, like the well known Backup & Migrate module. In this section, we can not ignore Feeds module, more powerful each day thanks to the rising group of modules that extend its capabilities.
The big battle is taking place in the Middle-earth: Deployment of site configuration (Views, Image Styles, Permissions and Roles, Entities, Content Types, Fields, Settings... anything that is not content nor an entity nor code).
Drupal 8 will provide a new Configuration Management System.
The best source to find out the details and capabilities of the new D8 Configuration System is this recent screencast from DrupalCon Portland 2013 by Greg Dunlap (@heyrocker), the leader of the initiative. Basically the new CM system rips the site configuration data out of the database and put it in files, using an easily readable yaml format. These files will be deployable from site to site. So in D8 finally Drupal core will provide a practical solution for the site configuration management.
Several contrib modules has tried to solve this core shortage in D6 and D7. Many of them are recent initiatives and will overlap with D8 core solution. Features has been until now the most used module for deploying configurations in D6/D7, but originally it was not designed for that function. With the arrival of D8, Features will be able to return to its core purpose: to pack functionality that satisfy user-cases
Important Note:Modules with no D7 version, or currently not maintained, has not been included in this comparative.
Module |
Main Aim |
Code |
Config |
Content |
Deps? |
Expt/ Impt |
D6 | D7 | Usage |
---|---|---|---|---|---|---|---|---|---|
D8 core Configuration Management System | Manage and deploy site configuration |
Not available | |||||||
Backup & Migrate | Backup and restore database tables |
214311 | |||||||
Features |
Saves code and configures setups that satisfy certain use-cases |
133274 | |||||||
Feeds |
Import or aggregate data |
Import only |
56191 | ||||||
Node Export |
Export/Import nodes |
21258 | |||||||
Migrate | Framework for migrating content into Drupal from other sources. |
Import only |
18931 | ||||||
Bundle Copy | Export/Import several entity types |
10371 | |||||||
Apps |
Download modules and all of their dependencies in one easy step |
8075 | |||||||
UUID Features Integration |
Export (non-bulk) content into a features module |
2865 | |||||||
Drush CTools Export Bonus |
Export all known Ctools exportables of a site to a module |
991 | |||||||
Deployment |
Content staging from one site to another |
902 | |||||||
Data export import |
Export/Import nodes, taxonomy terms and users using data files |
818 | |||||||
DBTNG Migrator | Replicate a database from one engine to another |
611 | |||||||
Patterns |
Manages and automates site configuration |
dev only |
496 | ||||||
Configuration Management |
Manage and deploy site configuration |
160 | |||||||
Stager | Staging content and config |
34 | |||||||
Drush Make & Make-generate | Install/Export site code from/to a .info file |
Not available | |||||||
Drush Deploy | Deploy/Rollback code with minimal downtime. Uses Git. |
Import only |
dev only |
Not available | |||||
Hook Update Deploy Tools | Make hook_update_N uses more powerful with better reporting |
Import menus |
100 |
Please update this page to reflect your knowledge of these modules
Revision Oct-2011 - Obsolete info
These tables take into consideration some D5 and D6 modules not covered in the 2013 revision.
Note, migrate modules are simply listed as "yes" for both import and export.Module |
Main Aim |
content |
config |
code |
export |
import |
Last row update |
---|---|---|---|---|---|---|---|
Deployment | Content staging |
yes |
no |
no |
yes |
yes |
9 Oct 2011 |
Stager | Staging content and config |
yes |
yes |
no |
yes |
yes |
9 Oct 2011 |
Snapshot | Backup a whole site, code and database |
yes |
yes |
yes |
yes |
no |
9 Oct 2011 |
rel="nofollow">Backup & Migrate |
Backup the whole database, and import |
yes |
yes |
no |
yes |
yes |
9 Oct 2011 |
Drush Make |
Installs all code for a site from a .info file |
no |
no |
yes |
no |
yes |
9 Oct 2011 |
Drush Deploy |
Code deployment using drush |
no |
no |
yes |
yes |
yes |
9 Oct 2011 |
dog (Drupal on Git) |
Aims to enable site code deployment over git, via drush |
no |
no |
yes |
yes |
yes |
9 Oct 2011 |
Staging |
Sync two sites |
? |
? |
? |
? |
? |
9 Oct 2011 |
Features |
Saves config setups that satisfy certain use-cases |
no |
yes |
yes |
yes |
yes |
9 Oct 2011 |
Migrate |
Migrate content from/to any source (Drupal, wordpress, other CMS, spreadsheet, whatever) |
yes |
no |
no |
yes |
yes |
9 Oct 2011 |
Backup |
back up a whole site, code and database |
yes |
yes |
yes |
yes |
no |
9 Oct 2011 |
Yet Another Migrate Module |
Mass content synchronisation |
yes |
? |
no |
yes |
yes |
9 Oct 2011 |
Development status
Module |
5.x |
6.x |
7.x |
#commits |
#users |
Development |
Last row update |
---|---|---|---|---|---|---|---|
Deployment | no |
alpha |
dev |
~200 |
614 |
active |
9 Oct 2011 |
Stager | no |
no |
1.2 |
13 |
19 |
minimally maintained |
9 Oct 2011 |
Snapshot | no |
0.1 |
no |
1 |
110 |
appears abandoned |
9 Oct 2011 |
rel="nofollow">Backup & Migrate |
1.3 |
2.4 |
2.2 |
214 |
100,696 | active |
9 Oct 2011 |
Drush Make |
no | 2.3 |
no |
~450 |
N/A |
active |
9 Oct 2011 |
Drush Deploy |
no |
no |
no |
13 |
N/A |
active |
9 Oct 2011 |
dog (Drupal on Git) |
no |
no |
no |
~110 |
N/A |
active |
9 Oct 2011 |
Staging |
no |
0.1 |
no |
5 |
9 |
appears abandoned |
9 Oct 2011 |
Features |
no |
1.1 |
beta |
~100 |
~40,000 |
active |
9 Oct 2011 |
Migrate |
no |
2.2 |
2.2 |
~1100 |
2706 |
active |
9 Oct 2011 |
Backup |
3.0 |
no |
no |
? |
212 |
abandoned |
9 Oct 2011 |
Yet Another Migrate Module |
no |
rc3 |
no |
25 |
11 |
active |
9 Oct 2011 |
Please update this page to reflect your knowledge of these modules
Comments
Feature comparison
Feature comparison between the modules would be handy. For example, Stager can manage content at the database level as well as modules. Deployment appears to manage content at a higher level and can't update modules. There would be use cases for each.
The above was gleaned from simply reading the module pages.
This page should be editable
This page should be editable to all, so would be great if you could jump in and add what you mention above.
Done. I've yet to use any of
Done. I've yet to use any of these modules so can't comment any further.
Nice, thanks =D
Nice, thanks =D
https://www.drupal.org
https://www.drupal.org/project/deploy_contributions
Methods
There probably should also be a page on deployment methodologies, as these module are just tools, and this page provides no comparison of ways to use them. Also, there are plenty of other tools out there that aren't modules, like Capistrano, Git, Drush rsync, etc.
Here are some links, but perhaps we should start a new page too:
http://stackoverflow.com/questions/730138/whats-best-drupal-deployment-s...
http://opc.com.au/web-development/drupal-release-management-drush-and-git
http://groups.drupal.org/packaging-deployment
http://dcycleproject.org/faq
Nice work on the page
Nice work on the page cleanup! Agree with your suggestion, though want to research what is already up on drupal.org first as well.