2

我有一个 Django 项目。每次部署时,都需要运行一系列manage.py命令(如syncdb、南迁移、fixture update)。

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

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

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

谢谢。

4

1 回答 1

6

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

您也可以直接调用管理命令

from django.core.management import call_command

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

将其保存为普通的 python 文件并从您的 shell 或作为部署脚本的一部分执行。

于 2013-03-06T06:57:03.353 回答