Up until now my site has always been based on static files, CGIs, and SSI work. One advantage of this is that I can run the whole site on a test server, so that anytime I change anything, I can verify it all works before uploading to the production server.

I'd really like to start using Drupal on this site, but I'm not sure how to get a similar kind of setup working. I mean, it's easy enough to have Drupal running on both servers, but once everything looks good on the test server, how do I go about syncing it all to the production side? Am I just going to need to have two browser windows open, and set up one to match the other by hand?

I've been experimenting with Drupal, and found that when I change the config I frequently have to try a few times before I get it right. On a test server that's no biggie, but I don't want to be doing that on my live site.

How can I do this with Drupal? Or am I just not "thinking Drupal" here, and there's some other solution I don't know about yet?

Comments

jxs2151’s picture

I have been doing the same thing but haven't gotten to the point where I need to synch. I will have to in the future and will lean on my experiences with doing production cutovers in large-scale ERP systems.

To me, drupal consists of a database named 'drupal', drupal code and a bunch of static files under a directory structure and perhaps some config files that lie outside of the structure. Or 1) Data, 2) Code, 3) Files, 4) Config Your job is to get all of these from a test site where you verified that everything works together at a certain release level to a production site.

Synching them would mean that you would have production running on, say 4.3.2 and test on 4.4.0. You would refresh test from production at a 4.3.2 level, run your 4.4.0 upgrade on the test server to verify the code upgrade. Test the setup as throughly as possible. Then you can either run the upgrade against the production site or refresh test again and then promote test to production by moving the drupal database, code, config files and the static files to the production server.

I should probably write a document on this since this is sorta my specialty in the ERP world.

I suppose if enough people throw some ideas down in response to your question I might collect it.

Mechanist’s picture

Thanks for the comments, but I wasn't really thinking about how I'd handle upgrading to a new version of Drupal (yet). I'm not actually using Drupal at my site yet, I'm just trying to work out how site management is going to work once I bring it online.

All I'm thinking of right now is the sort of change I might make using Drupal's admin interface to my general site configuration-- the sort of information that ends up in the database back end. Like I said, getting these changes right sometimes takes a bit of experimentation on my part, which I can't be doing on my production server. But once I do have it right, what then? How do I get this new configuration from the database driving my test server to the one driving my production server?

jxs2151’s picture

Export the table that contains the information from the test system and import it into the production sytem or redo the entries on the production system, whichever takes the least amount of time and effort.

It is a good idea to keep a detailed changelog so the you don't have to remember what has changed on the test system and needs to be updated on the production system.