Drupal Site Comparision

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
DarrellDuane's picture

It would be super helpful to have a module that you could have installed on two separate sites (say a development site and a production site) that would give you a list of differences between the two sites.
To begin with, it'd be great to have:
-- A listing of discrepancies between module versions, and enabled vs. disabled vs. installed/not installed modules on the two sites.
From there, enhancements to this module might include:
-- A listing of discrepancies between content types
-- A listing of discrepancies between views
-- A listing of discrepancies between taxonomy terms
--A listing of discrepancies between users/ nodes/ content
I imagine the list could go on. I couldn't find anything quite like this,
does anyone know of any module like this?

Comments

I presume a use case would be

Garrett Albright's picture

I presume a use case would be for when you bring a site live and the smart-aleck clients start messing around with the Views configurations and such.

If you use Features-based development, though, a lot of these problems will not be problems at all, since as much configuration as possible will be stored in code, not in the database, and Features itself can tell you when the configuration in the DB differs from what's in code and very easily revert things back to what you have in code. By virtue of the fact that configuration is in code, you can also track changes in version control, and use git bisect and the like to track down elusive config changes that have messed things up.

Wrapping your head around how Features works and changing your workflow to accommodate it is going to be a major change, but soon you'll be wondering how you ever built sites without it.

Tadaa!

bwood's picture

Here's a module with a frightfully un-descriptive name that covers parts of your use case: http://drupal.org/project/tadaa

I agree that features helps.

Another somewhat simpler approach is to do ctools exports of your content-types/views etc and version control those files. I put stuff like this in sites/all/config/[content-types|views|etc].

Drupal specific hosting like Pantheon (and probably Acquia Dev Cloud) provide tools to facilitate syncing code/db/files between dev/test/live environments.