views:

176

answers:

2

I was wondering how teams that develop sites using Drupal (or any other CMS) integrate version control, subversion, git or similar, into their workflow. You'd obviously want your custom code and theme files under version control but when you use a CMS such as Drupal a lot of the work consists of configuring modules and settings all of which is stored in the database.

So when you are a team of developers, how do you collaborate on a project like this? Dumping the database into a file and putting that file under version control might work I guess, but when the site is live the client is constantly adding content which makes syncing a bit problematic.

I'd love to know how others are doing this.

+5  A: 

You are correct that this is an issue for Drupal--version control works fine until you turn the site over to your client or open it up to users.

Your question seems like a more specific version of this one, which touched on version control in the Drupal workflow. You may find some answers there that help.

For some projects, I have exported all of the views to code, using that feature of the Views module, and I have one project where all of the blocks have been exported, as well. (Although that was a development exercise and not a customary thing to do with blocks.)

Take a look at the work that Development Seed is doing to work around this problem. They are leading the development of the Context, Features, and Spaces modules that work together to store configuration data in modules (outside of the DB) so that it can be versioned with the code.

There is a Drupal group called Packaging & Deployment for discussing the various solutions that are being developed for this issue.

flamingLogos
+1  A: 

Right now there are a lot of efforts towards creating something that will handle the dev -> production difficulties with drupal in relation to the database. Features, that flaminglogos mentioned is one, but I feel that is more focused on creating stand alone projects, ie ones that would be installed on many sites.

For simple maintaining you dev and prod databases I'd take a look at http://drupal.org/project/deploy and http://drupal.org/project/dbscripts. They support syncing and merging db side drupal config data.

I can't guarantee they are ready for prime time though...

openist
The Deploy module looks interesting in the screencast that's linked on its project page, and I'd agree that it's a neat solution for updating content on a single site.
flamingLogos