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 に答える