MSSQL-Django 支援與生命週期

此mssql-django套件是 Microsoft 官方支援的 Django 資料庫後端,支援 SQL Server、Azure SQL Database、Azure SQL 受控執行個體 及 Microsoft Fabric 中的 SQL 資料庫。 它在 GitHub 上有積極維護,並透過 PyPI 發布。 本頁涵蓋版本控制、平台相容性及支援政策。

版本支援

務必使用最新版本以獲得新功能、效能提升及安全修正。 新功能只會新增至目前版本。

目前版本

2.0 版本是目前的正式公開版(GA)。

Important

2.0 版本需要 mssql-python 1.15.0 或更新版本,即使資料庫別名使用 pyodbc. 此套件僅能安裝在有相容 mssql-python 發行版的平台上。 其他平台的專案則維持在 1.8.0 版本。

支援狀態定義

在版本表中使用以下狀態值:

狀態 Meaning
現況 新增功能、錯誤修正及安全修正。
上一頁 歷史釋放。 仍然可用,但不會收到更新。

版本歷程記錄

版本 發行日期 狀態 Django 版本 主要功能
2.0 2026 年 9 月 現況 5.2 - 6.1 選擇加入mssql-python驅動程式,Python 3.10 - 3.14,zoneinfo取代 pytz、MARS 及inspectdb修正
1.8.0 2026 年 8 月 上一個 3.2 - 6.1 支援 Django 6.1、quote_name 查詢編譯器變更、外鍵內省會傳回 ON DELETE 規則
1.7.4 2026 年 7 月 上一個 3.2 - 6.0 GROUP BY 對帶有實際參數的逸出 %% 字面值,以及原始查詢中的 IntegerChoices 參數的修正
1.7.3 2026 年 6 月 上一個 3.2 - 6.0 FA001 對 Authentication= 以外模式的 ActiveDirectoryMsi 修正,對子類別化的 DatabaseWrapperKeyError 的修正(自 1.7.1 起的回歸問題)
1.7.2 2026 年 5 月 上一個 3.2 - 6.0 DateTimeoffset 時區修正、 Now() 時區修正、 .explain() 相容性修正
1.7.1 2026 年 4 月 上一個 3.2 - 6.0 Fabric 中 SQL 資料庫的修正、降冪索引 AlterField 的修正
1.7 2026 年 3 月 上一個 3.2 - 6.0 Django 6.0 支援,ODBC Driver 18 預設,SQL Server 2025 支援
1.6 2025年8月 上一個 3.2 - 5.2 支援 Django 5.1 與 5.2,增強 JSON 功能
1.5 2024 年 4 月 上一個 3.2 - 5.0 supports_comments 旗標,AutoField 修正項目
1.4 2024 年 1 月 上一個 3.2 - 5.0 Django 5.0 支援, db_comment 支援
1.3 2023 年 5 月 上一個 3.2 - 4.2 Django 4.2 支援,大小寫區分 Replace
1.2 2022 年 12 月 上一個 3.2 - 4.1 支援 Django 4.1、支援時區,以及 Azure SQL 受控執行個體 上的 JSONField
1.1 2022 年 7 月 上一個 3.2 - 4.0 初期版本支援 Django 3.2 與 4.0

1.1 之前的版本是預發布的,未被列出。

Important

修正和新功能只會在新版本中推出。 舊版本仍可在 PyPI 上使用,但未被修補。 要獲得錯誤修正或安全修正,請升級到最新版本。

詳細的釋出說明請參見 MSSQL-django 的新內容。

Django 與 Python 版本相容性

每個 Django 版本都支援特定的 Python 版本。 mssql-django 2.0 測試以下組合:

Django 版本 Python 版本
6.1 3.12, 3.13, 3.14
6.0 3.12, 3.13, 3.14
5.2 3.10, 3.11, 3.12, 3.13

Django 3.2 到 5.1 以及 Python 3.8 和 3.9 已經停止支援,且未進行測試。 這些版本的專案仍維持在 mssql-django 1.8.0 版本。

Important

一定要使用支援的 Python 版本。 舊版 Python 不會收到安全更新。

SQL Server 同 Azure SQL 兼容性

mssql-django2.0 支援所有支援的 Microsoft SQL 版本。 後端無法識別的較新 SQL Server 主版本會使用後端已知的最新功能集來連線,而不會因版本驗證失敗。

產品或服務 支援狀態
SQL Server 完全支援
Azure 虛擬機器上的 SQL Server 完全支援
Azure SQL Database 完全支援
Azure SQL 受控執行個體 完全支援
Fabric 中的 SQL 資料庫 完全支援
Microsoft Fabric 數據倉儲 僅限連線。 在 pyodbc 路徑中,於 extra_params 中設定 MARS_Connection=no。 Django 遷移和其他 SQL Server 功能不被支援。
Azure Synapse Analytics 僅限連線。 Django 遷移和其他 SQL Server 功能不被支援。

資料庫驅動程式相容性

mssql-django2.0 透過兩個 Python 資料庫驅動程式之一連接,該驅動程式可依每個資料庫別名選擇。 欲了解更多資訊,請參閱 MSSQL-django 的選擇資料庫驅動程式。

Python 驅動程式 支援狀態 Connectivity
pyodbc 完全支援(預設) Microsoft SQL Server 的 ODBC Driver 17 或 18,需另行安裝
mssql-python 完全支援(可透過 python_driver 選項啟用) 內建,沒有獨立安裝

ODBC 驅動程式相容性

在 pyodbc 路徑上,後端預設使用 SQL Server 的 ODBC Driver 18;如果未安裝第 18 版,則會自動降級改用 ODBC Driver 17。 用 driver 資料庫設定中的選項覆蓋預設值。 明確的數值不會回退。

ODBC 驅動程式 支援狀態
Microsoft ODBC Driver 18 for SQL Server 完全支援(預設)
Microsoft ODBC Driver 17 for SQL Server 完全支援(後備)
FreeTDS ODBC 驅動程式 支援 pyodbc 路徑

路徑 mssql-python 忽略了這個 driver 選項。

安裝說明請參見 Download ODBC 驅動程式 for SQL Server。

作業系統相容性

mssql-django 2.0 需要 mssql-python,因此套件僅在存在相容 mssql-python 發行版的地方安裝。 即使每個資料庫別名都使用 pyodbc,該要求也適用。

作業系統 Architecture 支援狀態
Windows 11、Windows Server 2019、2022 及 2025 x64 支持
Windows 11、Windows Server 2022 與 2025 ARM64 支援 Python 3.11 及更新版本
macOS 15 及以後版本 英特爾、蘋果矽晶片 支持
搭載 glibc 2.28 或更新版本的 Linux,例如 Ubuntu 22.04 和 24.04、Debian 11 和 12,以及 Red Hat Enterprise Linux 8 和 9 x64、ARM64 支持
搭載 musl 1.2 或更新版本的 Linux,例如 Alpine Linux x64、ARM64 支持
SUSE Linux Enterprise Server ARM64 不支援

不支援平台上的專案會維持在 mssql-django 1.8.0 版本,這並不要求 mssql-python。

在路徑pyodbc上,請另外安裝 Microsoft ODBC 的 SQL Server 驅動程式。 安裝步驟會因作業系統而異。 請參閱 Install mssql-django 以了解平台專屬設定。

功能相容性

以下表格列出 Django 與 SQL Server 的功能及其後端支援狀態mssql-django。 欲了解更多未支援功能,請參閱 mssql-django 中的限制與未支援功能。

Django ORM 功能

Feature MSSQL-Django 支援
Migrations Yes
QuerySet 應用程式介面 Yes
JSONField Yes
bulk_create / bulk_update Yes
資料庫交易 Yes
inspectdb 和 --schema Yes
DISTINCT ON No
__regex / __iregex 查詢 部分(需要設定 CLR 組件;Azure SQL Database 無法使用)
SmallAutoField Yes
select_for_update() 是(NOWAIT 和 SKIP_LOCKED;of 不支援)
視窗函數 Yes
GeneratedField (計算欄位) 是的(Django 5.0 及之後版本)
CompositePrimaryKey 部分(Django 5.2 及以後版本;詳見限制)
db_comment 是的(Django 4.2 及之後版本)
覆蓋指標(include) 是的(Django 4.2 及之後版本)
NthValue No

SQL Server 功能

Feature MSSQL-Django 支援
加密連線(TLS) Yes
永遠加密 Yes
Microsoft Entra 認證 Yes
多個使用中結果集 (MARS) 是的,在 pyodbc 路徑上。 當別名在 Windows 上使用 Microsoft ODBC 驅動程式時,後端會啟用 MARS。 mssql-python路徑不會啟用 MARS,並拒絕 MARS_Connection 關鍵字。
預存程序 是的(來源 cursor.execute)
SNAPSHOT 隔離 是的(需要資料庫層級設定)
唯讀路由 Yes

依賴性要求

該 mssql-django 套件會自動安裝以下相依性:

依賴性 Purpose 所需版本
Django Web 架構 >=5.2,<6.2
pyodbc Python 預設的 ODBC 資料庫驅動程式 >=3.0
mssql-python Python 資料庫驅動程式。 無條件安裝,且僅在別名選擇加入時使用。 >=1.15.0
tzdata 供標準函式庫 zoneinfo 模組使用的 IANA 時區資料庫,用於作業系統未提供此資料庫時 Any

pyodbc 路徑也需要在主機系統上安裝適用於 SQL Server 的 Microsoft ODBC 驅動程式。 路徑 mssql-python 沒有獨立安裝 ODBC 驅動程式。 欲了解更多資訊,請參閱 安裝 mssql-django。

版本控管與破壞性變更政策

  • 主要版本(2.0):可變更支援的 Python、Django、SQL Server 及平台矩陣,並可新增或移除相依性。 破壞性變更只會在主要版本中出現。
  • 次要版本 (1.6、1.7):包含新的 Django 版本支援、新功能及錯誤修正。 保持向下相容性。
  • 補丁版本 (1.7.1、1.7.2、1.7.3、1.7.4):僅包含錯誤修正。

團隊會在發布說明中記錄重大變更。 請參閱 MSSQL-django 中的新內容 ,了解版本專屬的說明。

如何保持最新

mssql-django後端會隨著 Django 的版本發布而釋出新版本。 升級 Django 時請先注意更新。

檢查已安裝的版本

確認目前安裝的版本:

pip show mssql-django

升級至最新版本

更新至最新版本:

pip install --upgrade mssql-django

訂閱更新

取得支援

Microsoft 透過 GitHub 和社群管道支援mssql-django。

GitHub 問題

回報錯誤並請求功能請至 GitHub:

當你回報問題時,請包含你的 Django 版本、Python 版本、SQL Server 版本、Python 資料庫驅動程式及其版本,以及問題的最小複製品。

Contribute

歡迎社群貢獻。 欲了解更多關於貢獻者授權協議(CLA)及提交流程的資訊,請參閱 貢獻指南。

Community