views:

179

answers:

4

Can you help me to understand, how do I do Drupal website deployment and development?

Suppose, I developed 1.0 version of Berty&Frank website. I copied everything to their production server and it is alive and kicking now. Site is already full of contents and is growing.

I am asked to add additional features to the website. I am now experimenting with the way how I can implement them in a dev version. I am creating/deleting content types, fill created nodes with demo data just to see how they look like etc. Now I found the way and I want to upgrade production website to the same structure as my dev version now. How do I do that?

Is the only way to manually make every change I made in dev version?

A: 

You can export/import views and contenttypes, but a lot of settings etc is stored in the db. This gives two options

  • Either to use something like backup & migrate to import your settings from dev. This wont work if you have test data though, as you would overwrite the db.
  • The other options is to repeat what you did on the live site.
  • A third options could be to take a fresh dump of the live site, do all the settings in that db in dev environment and overwrite the live db with that. You could loose some comments etc, but shouldn't be a big deal.
googletorp
Is there any tool to help me record what I've done?
FractalizeR
+1  A: 

I would explore the Aegir project for the future management of your website. It allows you to clone a site, then to upgrade the site to a new "platform" which could be the next release of Drupal or another Drupal system (such as OpenAtrium).

More can be found at the aegir wiki.

Chris Ridenour
Nice idea, but it looks impossible to be used on shared hosting since I cannot use *.deb packages or shell scripts
FractalizeR
Shared hosting? It's the age of the cloud! ;)
Chris Ridenour
;) Yea. But.... I am in Russia you know ;) There is no much clouds... It's usually sunny here ;) :)
FractalizeR
A: 

read http://www.drupal.org/upgrade/

coder
I am not asking about simple upgrade from old version. But about deploying dev version onto production website.
FractalizeR
first of all, you should not deploy dev version into production website. what you can do is, replicate the entire production site to your local box, apply your changes / structure and then deploy the same to the production. you should take your site down for some time. if you dont want to take it down, you have to apply patch to the site which is risky
coder
A: 

I use Subversion, and just do an update on my production server when I am satisfied with the code on my development server (actually, I have a staging server that is a duplicate of the production machine, so I update that before the production; I can see any bugs that might pop up).

For database changes, I haven't found anything better than just keeping track of my changes (usually adding/modifying CCK fields) and performing the same changes to the production database. I also download my production database regularly, so that dev and staging have almost the same content. That helps to minimize the confusion.

Graham
Do you track changes by hand? Or use any Drupal module for that?
FractalizeR
Yes, I track them by hand. One way is to dump the DB structure on production and development servers, and diff them. It helps (a lot!) that I am the only developer who migrates DB changes. There is another guy who mainly does template and CSS work, so we don't get in each other's way much.
Graham

related questions