如何在使用django和south时初始化django数据库

时间:2011-06-05 16:24:38

标签: django django-south

我尝试编写一个脚本,为新的django应用程序重置和重新初始化数据库。为了检测任何错误,我想检查每个命令的返回码。

#! /bin/env python
import sys, os 

def execute⌘:
    print(cmd)
    ret = os.system(cmd)
    if not ret:
        sys.exit("Last command failed")

if __name__ == "__main__":
    if os.path.isfile('app.sqlite'):
        os.unlink('app.sqlite')

    execute('python manage.py syncdb --noinput --all') # << this fails
    execute('python manage.py migrate --noinput --all')

我的问题是我无法找到安全重新初始化数据库的方法。运行migrate失败,因为它需要syncdbsyncdb失败,因为它需要migrate

不要让我忽略命令中的返回码,我想要一个能够正确处理错误代码的解决方案。

1 个答案:

答案 0 :(得分:2)

您未正确使用sys.exit()。你可以raise Exception("error message")

此外,关于您所看到的内容的错误消息将有助于更好地回答您的问题。

的作用:

./manage.py syncdb --migrate --noinput

解决您的问题?

也许你应该检查:

if ret != 0:
    raise Exception("error")