Djangoで、sqliteとpostgresの両方で機能する必要がある「追加の」クエリを実行しています。これらのクエリの構文はバックエンドによって異なりますが、自分がそうであるかどうかを判断する方法がありません。クエリをpostgresまたはsqliteに送信します。
コードを分岐してアクティブなデータベースサーバーに適切なクエリを送信できるように、現在のデータベースアダプターを取得する方法はありますか?
わかりました。@ Ricola3Dがsettings.DATABASES['default']['ENGINE']
をチェックするオプションがあると言ったように、それを行うには2つの方法があります。
>>> 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
の方がきれいに見えるので好きです:)