mssql-django 支持情况和生命周期

mssql-django 包是 Microsoft 官方支持的、适用于 SQL Server、Azure SQL 数据库、Azure SQL 托管实例 和 Microsoft Fabric 中 SQL 数据库的 Django 数据库后端。 它在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 驱动程序 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 Azure SQL 托管实例上的 Django 4.1 支持、时区支持、JSONField
1.1 2022 年 7 月 上一个 3.2 - 4.0 支持 Django 3.2 和 4.0 的初始版本

1.1 之前的版本是预发行版本,未列出。

Important

修补程序和新功能仅在新版本中提供。 旧版本在 PyPI 上仍然可用,但未进行修补。 若要获取 bug 修复或安全修补程序,请升级到最新版本。

有关详细的发行说明,请参阅 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 数据库 完全支持
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 驱动程序 17 或 18,需单独安装
mssql-python 完全支持(可通过 python_driver 选项启用) 内置安装,没有单独安装

ODBC 驱动程序兼容性

在路径上pyodbc,后端默认为 SQL Server 的 ODBC 驱动 18,如果未安装版本 18,则会自动退回到 ODBC 驱动 17。 用 driver 数据库配置中的选项覆盖默认设置。 明确的值不会回退。

ODBC 驱动程序 支持状态
Microsoft ODBC Driver 18 for SQL Server 完全支持(默认值)
Microsoft ODBC Driver 17 for SQL Server 完全支持(回退)
FreeTDS ODBC 驱动程序 在 pyodbc 路径上受支持

路径 mssql-python 无视这个 driver 选项。

有关安装说明,请参阅下载 ODBC Driver 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 for SQL Server 驱动程序。 安装步骤因操作系统而异。 有关特定于平台的设置,请参阅 安装 mssql-django 。

功能兼容性

以下表格列出了 Django 和 SQL Server 的功能及其在 mssql-django 后端中的支持状态。 有关不支持的功能的更多详细信息,请参阅 mssql-django 中的限制和不支持的功能。

Django ORM 功能

功能 / 特点 mssql-django 支持
迁移 Yes
QuerySet API(应用程序接口) Yes
JSONField Yes
bulk_create / bulk_update Yes
数据库事务 Yes
inspectdb 与 --schema Yes
DISTINCT ON No
__regex / __iregex 查找 部分(需要配置 CLR 程序集;在 Azure SQL 数据库 中不可用)
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功能

功能 / 特点 mssql-django 支持
加密连接 (TLS) Yes
始终加密 (Always Encrypted) 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路径还需要在主机系统上安装 Microsoft ODBC 驱动 for SQL Server。 该 mssql-python 路径没有单独安装ODBC驱动。 有关详细信息,请参阅 安装 mssql-django。

版本控制和重大更改策略

  • 主要版本(2.0):可更改支持的 Python、Django、SQL Server 和平台矩阵,并可添加或移除依赖。 破坏性变更只会出现在主要版本中。
  • 次要版本 (1.6、1.7):包括新的 Django 版本支持、新功能和 bug 修复。 保持向后兼容性。
  • 补丁版本 (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