在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()
...
答案 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'