<div dir="ltr">Your development company is correct. There is no professional way to push changes to a live site directly. It is absolutely dangerous, a recipe for bringing down your site and/or for destroying live material. Or, as you complain, things will simply be breaking constantly.<br>
<br>There are many ways to separate the content (e.g., new posts to a blog) from the database code behind that content.<br><br>Any professional development company will do development as you describe it (sometimes there will be reasons for additional stages). "Dev" is where structural changes are done; "Test" or "QA" is where new editorial content is checked (out of the way of development), and where dev is finally tested before being pushed live. By using virtual servers, one can ensure that each environment is identical to the live environment (except for dev, which will often differ radically)<br>
<br>This is tricky, because many database-backed websites don't have good ways to promote just code changes (and drupal doesn't make it so easy), but it is critical that, at a minimum, those three functions are kept separate. In the case of static sites, we often used scripts based on rsync to move changes from test to production, never allowing humans to log into production. This is trickier when you have to update/change some, but not all database tables (which also require more than rsync to stay in sync).<br>
<br> (It is often the case and test and qa are also separate--one used to test code changes before production; the other for content changes. And, of course, if there are conflicting dev projects, there may be more dev instances, or sandboxes, to deal with that variety--but for most of us, that would be rare.<br>
<br>ari<br><br><div class="gmail_quote">On Thu, Aug 7, 2008 at 3:22 PM, Christopher M. Jones <span dir="ltr"><<a href="mailto:cjones@partialflow.com">cjones@partialflow.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I'm looking for a decent approach to staging a drupal site. The<br>
production site will be a collaborative authoring project, with forums,<br>
blogs, and lots of media. The client will have access to this site, and<br>
will be maintaining some of the content. Other content will be<br>
maintained by us.<br>
<br>
The development company that hosts this project prefers to make all of<br>
their changes, both to content and templates, in a testing environment.<br>
Once their client has approved the changes, they like to 'push' them to<br>
production.<br>
<br>
However, while these changes are taking place, the client may be<br>
administering forums and writing blog posts in the -production- version.<br>
<br>
To further complicate things, my company wants a three-stage cycle. They<br>
want a dev site, where they make changes for in-house review, which they<br>
then push to testing for client review before everything is pushed to<br>
production.<br>
<br>
I'm unsure how to approach this. The site in question has always been<br>
static html created in Dreamweaver. At some point they started adding<br>
other things, so now there are two wordpress blogs, and two phpbb<br>
forums. The forums and blogs presently are excepted from the development<br>
cycle. They simply appear to be part of the site, because their<br>
templates have been designed so. But that means that we've got to<br>
propagate template changes across five templates. Things are breaking<br>
constantly, and this is why I piped up to them about drupal.<br>
<br>
I've seen a lot of discussion about this topic, but I really need some<br>
hard answers. What should I do?<br>
<br>
I've seen the Staging module for 6.x. Is it safe to use? If so, then we<br>
could use that for the database. Templates could be pushed with rsync or<br>
svn... whatever. But would this work two ways? Could we sync the dev /<br>
testing sites to the production site, then sync the other way? Would we<br>
need to?<br>
<br>
Also, I envision using a multisite environment so that all sites share<br>
the same modules, media, etc, but use different templates.<br>
<br>
I desperately need the detailed advice of someone with experience, here.<br>
<font color="#888888">--<br>
[ Drupal support list | <a href="http://lists.drupal.org/" target="_blank">http://lists.drupal.org/</a> ]<br>
</font></blockquote></div><br></div>