2013-03-06 57 views
1

我有一个Django项目。每次部署时,我都需要运行一系列manage.py命令(如syncdb,南迁移,夹具更新)。如何在Django中运行一系列manage.py命令?

我厌倦类型的一行命令行,所以我写了一个python脚本做这些:

import subprocess 
subprocess.call(['python', 'manage.py', 'syncdb']) 
#Skip the detail 
subprocess.call(['python', 'manage.py', 'loaddata', 'setup/fixture.xml']) 

我想知道是否有更好的方法来做到这一点?

谢谢。

回答

4

您可以使用fabric,这是一个Python库,允许您编写远程操作脚本。 This question在接受的答案中有关于fabric和django的更多信息的一些链接。

您也可以call management commands directly

from django.core.management import call_command 

call_command('syncdb') 
call_command('loaddata', 'setup/fixture.xml') 

保存,作为一个普通的Python文件,然后从你的shell或作为部署脚本的一部分执行。

相关问题