Managing Development and Production Drupal environments on Ubuntu

Events happening in the community are now at Drupal community events on www.drupal.org.
metajunkie's picture

Through my searching, I have found many tutorials and HOWTos for installing Drupal. I haven't seen anything that addresses the traditional method for web development which maintains separate systems for development and production. I'm hoping that with your help, we can document a way to easily move Drupal sites (all files and database data) between systems to facilitate a better work-flow between a development environment and a production environment.

I am not comfortable performing updates on my production system, while it is off-line, only to test it when it is brought back on line. I'm assuming this is what some of you are doing. I'm also assuming that there are those among us who have a process (perhaps some bash scripts) to ease the migration from a dev environment onto the production system(s). Is anyone still developing on systems separate from their prod environments?

I am relatively new to Drupal, though I'm as old as the Internet (our completed plans came together in a final format around the same time, but my gestation period was shorter) and no stranger to bits and bytes. I have no doubt that I can engineer a solution - but I'm thinking someone already has, and I just haven't seen it. My other thought is that folks might think the dev/prod paradigm is out-dated or doesn't/shouldn't apply to Drupal. I hope the later is not the case.

All ideas are welcome here.

Please let me know how you are tackling this, and I'll do my best to pull all the ideas into a HOWTO.

Comments

I am using the dev local and

Sunshiney's picture

I am using the dev local and load to prod site model. I am using multisite and have had no problems with sftp'ng to prod. As I am using 6x Drupal, I did add a patch (oh no) to 6; the patch is in 7 so not as horrid as it may sound. That patch resulted in me not having to update mysql file paths for images each time I upload from dev to prod, which sure saves time. I am still a Drupal noob and not a coder for sure; no CS courses; just a learner. I am OLDER than the internet. lol! I have been using the dev/prod model on a local xp to department-owned windows server box and some shared hosting situations. However, at this writing I am in the middle of moving to linode VMS with some flavor of linux...it's between 8.04 LTS and 9.10 and leaning toward heron. Your post is of interest to me because I am considering a subcontractor for some deadline Drupal work and having a local dev box makes it difficult to coordinate a Drupal creation when more than one person is involved. I am hoping that I can create both production and dev on my new linode so that many can work on the dev site in the cloud, with, of course, version control. So much to learn and so little time!!

Off for more coffee.... will follow this thread..

Moving to Drubuntu, slowly...

mnorth's picture

I am in the process of trying out the drubuntu scripts & aegir.
Currently our setup is as follows:
-using a 2 stage development server process. Both servers are VMware vm's (Debian 5), one is development, one is production, both are public facing. The are Drupal 6.14, with a lot of custom modules. Both these Drupal installs are under Subversion control, pointing at the same repository. Locally we use Virtualbox, hosted on WinXP Pro, with Kubuntu 10.04 vm's. We develop locally on these vm's and commit our code to the repo, then update the development machine. After running tests on the development server, if all goes well, we update the production server. We have a third VMware vm(also Debian 5) that we use for experimenting on, it is also public facing, it points to an experimental branch off our main repo. We have yet to merge any code from the experimental branch back into the main repo, that may be happening soon with some 3rd party custom modules.
None of our MySQL databases are under any sort of revision control. We make use of the Backup and Migrate module for making backups (even though all are servers are clones of each other the module does not run schedule backups on our production server for some reason????). After a backup we sftp the backup to yet another VMware vm (a WinXP one, that is under a managed service contract from our ISP) from which we do tape backups.
So at present I'm investigating the drubuntu scripts, on a local VirtualBox vm, and am progressing slowly with that....next step is to look at aegir for managing the experimental, development & production servers...

Aegir and drush + drush make files

kbell's picture

Guys, this is what you want (it sure beats writing your own bash scripts using rsync, I promise!). For content migration check out the Deploy module.

Aegir + drush + drush.make:
http://developmentseed.org/blog/2010/sep/11/aegir-04-alpha-13-drush-make...
http://developmentseed.org/blog/2010/jul/27/drush-make-files-production-...
http://drupal.org/node/575420
http://drush.ws/

Deploy module:
http://drupaldojo.com/session/deploy-module-and-future-staging-and-deplo...
http://drupal.org/node/408762

Happy coding,

--Kelly Bell
Gotham City Drupal
twitter: @kbell | @gothamdrupal
http://drupal.org/user/293443

Drubuntu

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week