Django で、sqlite と postgres の両方で動作する必要がある「追加の」クエリを実行しています。これらのクエリの構文はバックエンドによって異なりますが、クエリを postgres に送信しているか sqlite に送信しているかを判断する方法がありません。
現在のデータベース アダプタを取得してコードを分岐し、アクティブなデータベース サーバーに適切なクエリを送信する方法はありますか?
OK、@ Ricola3Dがチェックのオプションがあると言ったように、それを行うには2つの方法がありますsettings.DATABASES['default']['ENGINE']
:
>>> from django.conf import settings
>>> settings.DATABASES['default']['ENGINE']
'django.db.backends.sqlite3' or 'django.db.backends.postgresql_psycopg2'
しかし、接続には (文書化されていない) ベンダー プロパティもあります。
>>> from django.db import connection
>>> connection.vendor
'postgresql' or 'sqlite'
どちらの方法でも機能します。私は個人的にそれがよりきれいに見えるので好きですconnection.vendor
:)