Hi,

We're currently multiple developers working on the same Drupal site (each on different sections of the site). The way we are currently setup is using a central database, with every developer having a local Drupal installation of the site (all connected to the central DB).

When we install / update modules, we push them on SVN, and then quickly ask the other developers to update their SVN repo, to make sure they have the module and don't overwrite what we do in the database. This is something that doesn't seem optimal to me, but now that we are used to it, it is not much of a big deal to do it.

Then comes issues with caching, where if I'm trying to debug something I might end up losing my data since someone else is refreshing a page or clearing the caches...

So my question, is there an ideal way to setup when multiple developers are working on the same site? Something that makes it easier to install/update modules, and in the end that would make it easy to get the website onto a production environment without having to merge too many things...

Any ideas are welcome, thanks in advance,
Bruno

Comments

N1ghteyes’s picture

the above is pretty much what we do, with one main difference.

All developers have their own code base and database locally, where they develop & test etc.
Once done, they commit to a central test install (int) on its own database, so all changes can be tested together.
those changes can then go to production, or if you have a larger setup, to UAT and then production.

We find this works really well, as all conflicts are managed and then pulled down from the int server rather than on a dev's local machine. which means that any issues don't effect developer machines, only test (normally).

once working on test, it should be plain sailing up to production.

ThaRaven403’s picture

Thanks for the reply, glad to see we sort of have a good way of doing things...

But I'd have a question with what you answered... How do you get the database changes to correctly commit on the central test install ? I see how this would help (and I'm really interested in trying this!), but I don't see how this can be easily managed without creating duplicates or issues in the database. Do you have to keep track of every db entry modified so that you can export them and import on the test install?

Thanks again for the info!
Bruno

N1ghteyes’s picture

in this instance we don't actually do anything with the data in the database locally, normally.

i guess it depends on what your doing. our team is mostly focused on the development and maintenance of a single set of websites, we;re an internal dev team rather than part of an agency so most of the time we don't add any content. if we need an a copy of the latest content on live we just dump that db and import it locally. Most of the time though since we're working on functionality, reporting or features, the actual content doesn't matter all that much. if that makes any sense....

if you have multiple devs on a number of projects i can see how our approch would cause issues, perhaps some clever replication could work, im not sure