我有一个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'])
我想知道是否有更好的方法可以做到这一点?
感谢。
答案 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或作为部署脚本的一部分执行。