我有一个多步骤部署系统设置,我在本地开发,有一个带有生产数据库副本的临时应用程序,然后是生产应用程序。我使用SVN进行版本控制。
部署我的生产应用程序时,我只是将urls.py和settings.py文件移动到一个目录中,使用rm -rf
命令删除我的django app目录,然后从存储库执行svn导出,创建一个我的更新代码的新django app目录。然后我将我的urls.py和settings.py文件移回原位,一切正常。
我的新问题是我现在将用户上传存储在我的django应用程序内的文件夹中,所以我不能再删除整个应用程序目录了,否则我将丢失所有用户文件。
您认为我现在最好的方法是什么? svn export --force
会工作,因为它应该覆盖我所有已更改的文件吗?我应该采取一种全新的方法吗?我愿意接受建议吗?
答案 0 :(得分:2)
你可能想看雅各布的this presentation。它可以帮助您改进部署过程。
我使用Bitbucket作为我的回购,我可以简单地在我的开发盒上执行push并在Stage / Prod框上运行pull / update。其实我不是手动运行它们,我使用fabric为我做这些:)。
答案 1 :(得分:1)
您可以使用rsync或类似方法备份上传的文件,并在部署项目时使用此备份。
对于部署,您可以尝试使用buildout:
http://www.buildout.org/
http://pypi.python.org/pypi/djangorecipe
http://jacobian.org/writing/django-apps-with-buildout/
对于其他部署方法,请参阅此问题:
答案 2 :(得分:0)
您可以将文件移动到S3服务器(http://aws.amazon.com/s3/),这样您就不必关心将它们与项目一起移动。