如何使用本地开发服务器并部署到django中的生产服务器?

时间:2015-01-09 22:19:39

标签: django

我想在我的django(1.7)项目上本地工作,并定期将更新部署到生产服务器。你会怎么做?我在文档中没有找到任何相关内容。我很困惑,因为似乎很多人都想这样做,应该有一些标准的解决方案。或者我是否将整个工作流程弄错了?

我应该注意到,我不期待逐步指导。我只是想了解这个概念。

4 个答案:

答案 0 :(得分:2)

假设您已经安装了部署服务器,并且您需要做的就是将代码推送到服务器,那么您只需使用git作为部署形式。

Digital Ocean在此链接上提供了一个很好的教程https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps

答案 1 :(得分:1)

从dev机器将源推送到git存储库。 在生产服务器上提取源。重启uwsgi / whatever。

答案 2 :(得分:1)

没有标准的方法,所以不,它不能包含在Django中或在文档中进行详细描述。

如果您使用PaaS,部署方式取决于PaaS。对于像docker这样的容器而言,您必须遵循该特定容器的规则。

如果您已经老了并且可以进入服务器,您可以在完成所有其他工作之后将代码快照发送到正确的位置:数据库,端口,网络服务器设置等。'我做的是什么,我使用makefile控制bash脚本。

REMOETHOST=user@yourbox
REMOTEPATH=yourpath
REMOTE=$REMOTEHOST:$REMOTEPATH

make rsync REMOTE_URI=$REMOTE
ssh $REMOTEHOST make -C $REMOTEPATH deploy

我的"部署" -action是一个怪物,但可能像接触用于重新加载网站的wsgi文件一样容易。我的中型复杂文件清除陈旧文件,运行collectstatic,然后重新加载网站。真正复杂的创建了一个带时间戳的virtualenv,克隆的数据库和远程代码树,一个指向此的新服务器设置,在远程上运行连接测试,如果成功,则切换主站点指向新版本的站点,然后通过git哈希和时间戳向我发送现在正在制作的版本。

答案 3 :(得分:0)

很多好的解决方案。 Heroku有一个很好的教程:https://devcenter.heroku.com/articles/getting-started-with-django

在此处查看有关部署到多个PaaS提供商的一般指南:http://www.paascheatsheet.com