如何在Django中运行一系列manage.py命令?

时间:2013-03-06 06:49:59

标签: django

我有一个Django项目。每次部署时,我都需要运行一系列manage.py命令(例如syncdb,south migiration,fixture更新)。

我厌倦了逐行输入命令,因此我编写了一个python脚本来执行这些操作:

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

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

感谢。

1 个答案:

答案 0 :(得分:5)

您可以使用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或作为部署脚本的一部分执行。