1

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

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

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

伪代码:

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

2 回答 2

0

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

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

于 2013-01-22T23:47:29.187 回答
0

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

from django.db import DatabaseError

try:
    Model.objects.exists()
except DatabaseError:
    print 'DB not yet initialized'
else:
    print 'DB table exists'
于 2013-01-23T03:25:57.253 回答