MSSQL-django Configuration Reference

この記事はmssql-django Djangoデータベースバックエンドの完全なsettings.py設定リファレンスです。 Djangoプロジェクトのsettings.pyファイル内のDATABASES辞書を編集して接続性SQL Server設定してください。

最小構成

以下の例は最小必要構成を示しています:

DATABASES = {
    "default": {
        "ENGINE": "mssql",
        "NAME": "<your-database>",
        "USER": "<your-username>",
        "PASSWORD": "<your-password>",
        "HOST": "<your-server>",
        "PORT": "1433",
        "OPTIONS": {
            "driver": "ODBC Driver 18 for SQL Server",
        },
    },
}

データベース接続設定

これらの設定は DATABASES 接続の設定を行います。 ほとんどは標準的なDjangoの設定です。例外を記載します:

Setting タイプ Description
ENGINE String "mssql"である必要があります。
NAME String データベース名。 必須。
HOST String サーバーのホスト名かIPアドレス。 名前付きインスタンスには "server\\instance" 形式を使用してください。
PORT String サーバーインスタンスポート。 空文字列はデフォルトのポートを意味します。
USER String データベース ユーザー名。 もし提供されない場合は、Windows統合セキュリティが使用されます。
PASSWORD String データベースのユーザーパスワード。
AUTOCOMMIT ブール値 Djangoのトランザクション管理を無効にするために False に設定してください。 既定値は True です。
Trusted_Connection String USERが提供されていない場合Windows統合セキュリティを使うように、"yes"(デフォルト)に設定してください。 USERPASSWORDの両方が設定されている場合、その資格が優先され、Trusted_Connectionは無視されます。 "no"に設定してWindows 認証を明示的に無効にします。 これは標準的なDjangoの設定ではなく、 mssql-django 拡張です。
TOKEN String Microsoft Entra認証のためのアクセストークン(例えばazure.identity経由)。 これは標準的なDjangoの設定ではなく、 mssql-django 拡張です。

テスト設定

これらの設定は、Djangoのテストランナーが使用するテストデータベースを制御します。

Setting タイプ Description
NAME String テストデータベース名。 既定値: "test_" + NAME
COLLATION String テストデータベース用の照合。 デフォルト:インスタンスデフォルト。
DEPENDENCIES 一覧 データベースの作成順序依存関係。
MIRROR String テスト中にミラーリングするためのデータベースの別名。

例:

DATABASES = {
    "default": {
        "ENGINE": "mssql",
        "NAME": "<your-database>",
        "USER": "<your-username>",
        "PASSWORD": "<your-password>",
        "HOST": "<your-server>",
        "PORT": "1433",
        "OPTIONS": {
            "driver": "ODBC Driver 18 for SQL Server",
        },
        "TEST": {
            "NAME": "test_mydb",
            "COLLATION": "SQL_Latin1_General_CP1_CI_AS",
        },
    },
}

オプション

OPTIONS辞書はバックエンド固有の構成を提供します。 これらの設定を DATABASES["default"]["OPTIONS"] 辞書に入れます:

オプション タイプ デフォルト Description
driver String "ODBC Driver 18 for SQL Server" ODBCドライバーの使用。 ドライバー18がインストールされていないと自動的にドライバー17に戻されます。
isolation_level String None トランザクション分離レベル: READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSNAPSHOT、または SERIALIZABLE
dsn String None DSNと名付けられました。 HOSTの代わりに使えます。
host_is_server ブール値 False Trueに設定して、freetds.confデータサーバー名ではなくFreeTDSで直接HOST/PORTを使うようにしています。
unicode_results ブール値 False pyodbcの unicode_results 機能を有効にしてください。
extra_params String None 追加のODBCパラメータは "param=value;param=value" 形式で示されています。 Microsoft Entra認証に使用。
collation String None テキストフィールドの検索のためのコレーション(例: "Chinese_PRC_CI_AS")。
connection_timeout Integer 0 接続タイムアウトは秒単位(0 =無効)。
connection_retries Integer 5 接続再試行回数。
connection_retry_backoff_time Integer 5 リトライの間隔は数秒で下がる。
query_timeout Integer 0 クエリのタイムアウトは秒単位(0 = 無効)。
setencoding / setdecoding 一覧 None pyodbc エンコーディング / デコード 構成。
return_rows_bulk_insert ブール値 False バルクインサートからの返品行を許可してください。 テーブルにトリガーがある場合は False に違いありません。
datefirst Integer 7 SET DATEFIRSTの週の初日です。 7は日曜日(SQL Serverデフォルト)、1は月曜日です。
driver_needs_utf8 プレゼンスオンリーオプション 未設定 ODBCドライバーのUTF-8エンコーディングを有効にしてください。 このオプションは、キーが OPTIONSに存在し、値自体は無視されるときに有効になります。 通常、FreeTDSやLabin-1をデフォルトで使う古いUnixODBC構成で必要です。
driver_charset String None ODBCドライバー用の明示的な文字セット(例: "UTF-8")。 ドライバーがエンコードを自動的に検出しない場合は driver_needs_utf8 と組み合わせて使う。
connection_recovery_interval_msec Float 0.0 ネットワークエラー後のバックエンドの接続復旧ループで再試行の間隔を待つためのミリ秒。 不安定なネットワークリンクの場合はこの値を上げます。

一般的な選択肢の例:

DATABASES = {
    "default": {
        "ENGINE": "mssql",
        "NAME": "<your-database>",
        "USER": "<your-username>",
        "PASSWORD": "<your-password>",
        "HOST": "<your-server>.database.windows.net",
        "PORT": "1433",
        "OPTIONS": {
            "driver": "ODBC Driver 18 for SQL Server",
            "extra_params": "Encrypt=yes",
            "isolation_level": "READ COMMITTED",
            "connection_timeout": 30,
            "connection_retries": 3,
            "connection_retry_backoff_time": 5,
            "query_timeout": 60,
        },
    },
}

バックエンド固有の設定

この設定は settings.pyのモジュールレベル、 DATABASES 辞書の外に位置しています:

Setting タイプ デフォルト Description
DATABASE_CONNECTION_POOLING ブール値 True Falseに設定してpyodbcの接続プーリングを無効にしてください。

例:

DATABASES = {
    "default": {
        "ENGINE": "mssql",
        "NAME": "<your-database>",
        "USER": "<your-username>",
        "PASSWORD": "<your-password>",
        "HOST": "<your-server>",
        "PORT": "1433",
        "OPTIONS": {
            "driver": "ODBC Driver 18 for SQL Server",
        },
    },
}

# Set this to False to disable pyodbc's connection pooling
DATABASE_CONNECTION_POOLING = False