We have a number of client sites which are pretty much always evolving so we often find ourselves in a place where we're adding new structure and content to a site and trying to adjust the existing structure and content whilst the client may also be publishing new content or editing existing content!

Previously we've approached this using a number of different methods:

1) Creating a 'dev' server on which we carry out the development but we then have to mirror all edits and amends to the live server at a later date to avoid trashing any new content on the live server.

2) Working new developments into temporary 'template groups' and 'channels' and then adjusting the template group names and channel names accordingly once we're done.

3) Using conditionals in live templates to allow a logged in admin to preview changes without us having to resort to a full staging server.

There has to be a better way to do this, some way to marry ongoing site development (changes to templates, sections, fields and content) with a database full of live changing data.

Any ideas? I would be interested in solutions for both EE1.x and EE2.x.

Thanks in advance for your time! :)

  • I've answered this before as well, documenting our workflow and linking to a video highlighting Git/MySQL db steps. See expressionengine.stackexchange.com/a/5971/293 Feb 15, 2013 at 1:54
  • Hi Nathan - I'm closing this as not constructive because we discourage open ended discussions on Stack Exchange in favor of specific, answerable questions. As you can see there have already been quite a few questions on this topic, but what works best for you will be very specific to your own needs, and there's no point in everyone simply copying/linking to existing answers on other questions here. Feb 16, 2013 at 3:05

1 Answer 1


Nathan, the first answer on this Q/A explains the standard method of development. Generally when you get the point that you're at, it makes sense to use a versioning tool such as Git and develop locally, deploy to Dev and/or Staging for testing and finally to Production. It's a little scary to begin with but I've had to adopt just this approach in the last 12 months as projects become more complicated and exponentially larger in scope.

Migrating between Development, Staging and Production for a pre-existing ExpressionEngine site

The main thing to take away from Adrian Macneil' response in the above post is the following:

Code should flow in this direction:

Development >> Staging >> Production

Content, on the other hand, should flow in the opposite direction:

Development << Staging << Production

Myself I currently use CodeBaseHQ (for repository) and DeployHQ (for deployment) services. Codebase has the additional plus of allow you to setup tickets for each of the development members and discussion areas where knowledge can be documented for future retrieval.

Regards Brendan

Not the answer you're looking for? Browse other questions tagged or ask your own question.