Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to manage a drupal website in git

I'm a bit lost, one of my developer co-worker is doing a drupal website, that is doing special pages, custom logos, custom hierarchy etc. His work is scattered in database tables (it looks like CCK create tables), database rows (texts, image links etc.), static files (pictures, PDFs ...) and maybe some PHP (custom module).

My problem is to get his work in the git repository and being able to deploy it on various servers in a consistent way, like I would do with traditional developer work (let's say J2EE). One of my constraint is avoiding raw SQL because we might deploy the same code on various RDBMS. But if I have to, I'll relax this constraint.

I can't find a module that does that out of the box, do you have any pointer I could have missed on the drupal website ?

Thanks for your help,

Nicolas.

like image 382
nraynaud Avatar asked Feb 24 '10 13:02

nraynaud


2 Answers

Using Features along with Context is very powerful. Context lets you create a "section" for your site. It's best illustrated through an example:

Lets say we define the "Forum" context as anything with the url of forums/*. Context lets us say: "I want to show these three views in the right side bar, only when I am in the "Forums" context.

Now, using Features, we can create "module" define by the context. So, we will end up with a module called "youSite_forums", which will include all the views, blocks, etc. that was define in your Forums context. It also will determine the correct dependencies, as well as Content Types used in the context. All will be bundled up nicely in a module.


As for versioning content such as node, you can user either Node Export, or just do a DB dump using Backup and Migrate. We use these occasionally, but we never have every node versioned in SVN.


Links:

Features

Context

Backup and Migrate

like image 87
Erik Ahlswede Avatar answered Oct 07 '22 23:10

Erik Ahlswede


The Features module might get you were you want to go. It allows you to export various site and module configurations. The exports are in the form of a custom Drupal module which you could then store and manage via git, and subsequently roll the features out to other Drupal sites.

http://drupal.org/project/features

more info (and a screencast) on the module:
http://developmentseed.org/blog/2009/may/29/making-and-using-features-drupal

like image 38
ashtonium Avatar answered Oct 07 '22 22:10

ashtonium