避免Django DatabaseError关系“模型”不存在

时间:2013-01-22 23:26:38

标签: django postgresql

在django中初始化应用程序,在创建postgresql数据库之前 ,如果有人试图获取/ all /创建对象,他们通常会看到如下错误:

>>> Model.objects.all()
{StackTrace}
...
DatabaseError: relation "model" does not exist
...

在我的应用程序中,我希望能够测试模型是否存在并运行代码(如果存在),是否可以使用django?

伪代码:

if not (table_exists(model))
   return
my_models = Model.objects.all()
...

2 个答案:

答案 0 :(得分:0)

我不知道你为什么要这样做,但是你可以发出原始的sql以查看表是否存在吗?

SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';

答案 1 :(得分:0)

您可以捕获尝试访问模型时抛出的异常:

from django.db import DatabaseError

try:
    Model.objects.exists()
except DatabaseError:
    print 'DB not yet initialized'
else:
    print 'DB table exists'