2010-10-01 60 views
0

我有一个多步骤部署系统安装程序,在本地开发的应用程序中有一个生产数据库副本,然后是生产应用程序。我使用SVN进行版本控制。Django部署建议

当部署我的生产应用程序时,我只是将urls.py和settings.py文件移动到目录中,使用rm -rf命令删除我的django应用程序目录,然后从存储库执行svn导出,从而创建新的django应用程序目录与我更新的代码。然后,我将urls.py和settings.py文件移回原位,并且一切正常。

我的新问题是,我现在将用户上传的内容存储在我的django应用程序中,因此我不能只删除整个应用程序目录,否则我会丢失所有用户文件。

您认为我现在最好的方法是什么? svn export --force会工作,因为它应该只是覆盖所有我更改的文件?我应该采取一种全新的方法吗?我愿意咨询?

+0

为什么不能在项目目录之外上传目录? – 2010-10-01 19:44:09

+0

当你这样做时,Django不喜欢它。我知道这是可能的,但我已经用这种方式编写了很多编码。 – imns 2010-10-01 19:56:45

+0

有什么问题? – 2010-10-02 04:48:11

回答

2

您可能想看Jacob的this presentation。它可以帮助您改进部署过程。

我使用Bitbucket作为我的回购,我可以简单地对我的Dev框执行推送并在Stage/Prod框上运行pull/update。其实我不会手动运行它们,我使用fabric来为我做:)。

1

您可以使用rsync或类似的软件来备份您上传的文件,并在部署项目时使用此备份。

对于部署,你可以尝试使用扩建:

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

对于其他部署方法看这个问题:

Django deployment tools

0

您可以将文件移动到S3服务器(HTTP:// aws.amazon.com/s3/),所以你永远不必关心移动他们与你的项目。