0

I have a multi-step deployment system setup, where I develop locally, have a staging app with a copy of the production db, and then the production app. I use SVN for version control.

When deploying my production app I have been just moving the urls.py and settings.py files up a directory, deleting my django app directory with rm -rf command and then doing an svn export from the repository which creates a new django app directory with my updated code. I then move my urls.py and settings.py files back into place and everything works great.

My new problem is that I am now storing user uploads in a folder inside of my django app, so I can't just remove the whole app dir anymore or I would loose all of my users files.

What do you think my best approach is now? Would svn export --force work, since it should just be overwriting all of my changed files? Should I take an entirely new approach? I am open to advice?

imns
  • 4,996
  • 11
  • 57
  • 80

3 Answers3

2

You may want to watch this presentation by Jacob. It can help you improve your deployment process.

I use Bitbucket as my repo and I can simply perform push on my Dev box and run pull/update on Stage/Prod box. Actually I don't run them manually, I use fabric to do them for me :).

Srikanth Chundi
  • 897
  • 9
  • 8
1

Your could use rsync or something similar to backup your uploaded files and use this backup when you deploy your project.

For deployment you could try to use buildout:

http://www.buildout.org/
http://pypi.python.org/pypi/djangorecipe
http://jacobian.org/writing/django-apps-with-buildout/

For other deployment methods see this question:

Django deployment tools

Community
  • 1
  • 1
Dominik Szopa
  • 1,909
  • 1
  • 15
  • 16
0

You can move your files to S3 servers (http://aws.amazon.com/s3/), so you will not ever have to care about moving them with your project.

Tomasz Wysocki
  • 11,170
  • 6
  • 47
  • 62