I'm sure this is something a few of you have had to face, I'm wondering what techniques there are or maybe tools to help that you might know of?
So you have a site, a wordpress site for instance, there's a lot going on, bespoke dev work done and so on. The site is live and you need to do some dev work on it that will affect the database, admin settings and so on.
How do you roll out the database changes and new admin settings while maintaining the site's live data and without taking it offline or freezing it for too long?
With Rails there's capistrano. I'm sure there's a PHP equiv, if not, I'm sure I've seen stuff online about deploying with Capistrano.
http://madebymany.com/blog/using-capistrano-with-php-specifically-wordpress
I've used Phing successfully in the past, but only for simple stuff, I haven't really explored it in earnest.
Best advice I can give -- set up a test server with a direct dump of the live code/data and do a practice run before you try it on the live server. So you make your mistakes in private rather than trying to pick up the pieces on a busted live site.
thanks gents, I'd also found this link which looked helpful:http://buildmeister.com/articles/automating_the_php_deployment_process_with_phing,_dbdeploy_and_ftp
guess I'll find some time to give them a run thru.
So this isn't a situation either of you have to face much? Anyone else? I was hoping for a recommendation based on personal exp.
My ideal would be a single solution that can handle both Wordpress sites, but also CodeIgniter sites and maybe even Magento - it's all PHP / MySQL of course. And then I need to consider how it'll fit with version control and maybe even a ticketing system.
Well Phing has support for example for running a Subversion export -- I use it to export new releases of my search library, bundle the files as zip and gzip, and upload them to Google Code. It's a pretty simple script and was mostly just cut+pasted from various examples and tutorials I dug up. But from what I can tell it's possible to automate most processes and it's unlikely you'll be trying to do something that someone out there hasn't already tried and posted to a blog or forum. And I'm sure the same applies to Capistrano.