2013-03-06 71 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或作爲部署腳本的一部分執行。

相關問題