我最初是一名 .NET 开发人员,当时当我们必须从 Visual Studio 发布软件时,我们必须将其切换到 Release模式,以确保删除调试 Hook 并保留存储库文件。最终结果是一组干净的文件,准备投入生产。
在切换到 Django 并使用它近三个月后,我现在准备部署第一个应用程序。我已经阅读了相当多的内容。我知道如何将调试设置为 False 并拥有 production_setting.py 以及如何在 Apache 上使用 WSGI 进行部署。
但我仍然没有弄清楚推出版本的一个很好的过程。
据我现在所知,我会为发布执行以下操作:
- 手动将所有文件复制到上传目录(不包括隐藏的 Mercurial 目录)
- 将它们全部压缩
- 通过 SCP 将它们发送到 Ubuntu 服务器
- 登录服务器
- 解压 zip 文件并将所有内容放置到位
- 修改setting_Production.py并输入凭据
这是一个健康的 Django 部署过程吗? :)
仅供引用,我正在使用 Aptana Studio 3.2.1
感谢您的任何提示
最佳答案
您可以查看Fabric ;文档将其描述为
... a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.
它能够做您想做的所有事情。
您的“部署”任务可能会有多个子任务(_upload_tar_from_hg()
、_migrate()
等),但是总体情况如下:
from fabric.api import *
env.release_name = 'foo_bar-1.0'
env.deployment_path = '/var/www/django/%s' % env.release_name
def deploy():
local('hg archive -t tgz $s.tar.gz' % env.release)
put('%s.tar.gz' % env.release, env.deployment_dir)
run('cd %s && tar -xzvf %s.tar.gz' % (env.deployment_path, env.release))
local('rm %s.tar.gz' % env.release)
run('cd %s/%s && ln -s settings_production.py settings.py' % (env.deployment_path, env.release))
这依赖于在源代码管理中拥有单独的settings_Production.py
,这可能不合适。 Fabric 可以在文本文件中查找和替换,或者您可以使用 a local_settings.py
approach 组合设置.
查看the Fabric tutorial填补空白(例如指定服务器的连接详细信息。设置完成后,只需运行
fab deploy
并且该过程应该自动进行。
注意从 Mercurial 创建一个没有 hg
元数据的存档是使用 hg archive
命令一步完成的)
关于django - 如何在没有 Mercurial 文件的情况下将 Django 部署到生产服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11826334/