此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
- Stack Overflow:用
django和sql-server為問題加上標籤。 - Django 文件
- Azure Python 開發人員中心