跳到内容

发布说明

最新更改

0.0.23

修复

  • 🐛 修复 Field 构造函数中的类型注释。公关 #1304 作者 @AlanBogarin
  • 🐛 修复 Pydantic 版本检查,以支持 2.10.x 及更高版本。公关 #1255 作者 @asiunov

重构

  • 🚨 修复新 Pydantic 的类型。公关 #1131 作者 @tiangolo

文档

  • 🩺 仅从推送到 main 分支的操作中获取 GH 徽章。公关 #1291 作者 @svlandeg
  • 📝 更新文档以引用 list 而不是 List。公关 #1147 作者 @bubbletroubles
  • ✏️ 修复 databases.md 中的错别字。公关 #1113 作者 @radi-dev
  • ✏️ 修复 docs/tutorial/create-db-and-table.md 中的错别字。公关 #1252 作者 @ArianHamdi
  • ✏️ 修复 insert.md 中的错别字。公关 #1256 作者 @Noushadaliam
  • 📝 更新 markdown includes 格式。公关 #1254 作者 @tiangolo
  • 📝 更新 Decimal 文档中带围栏代码的格式以保持一致性。公关 #1251 作者 @tiangolo
  • ✏️ 修复 v0.0.22 发布说明中的错别字。公关 #1195 作者 @PipeKnight
  • 📝 更新 docs/advanced/uuid.md 的 includes。公关 #1151 作者 @tiangolo
  • 📝 更新 docs/tutorial/create-db-and-table.md 的 includes。公关 #1149 作者 @tiangolo
  • 📝 修复文档中的内部链接。公关 #1148 作者 @tiangolo
  • ✏️ 修复文档中的错别字。公关 #1106 作者 @Solipsistmonkey
  • 📝 移除 indexes.md 中的高亮显示。公关 #1100 作者 @alejsdev

内部

  • ⬆ 将 pypa/gh-action-pypi-publish 从 1.12.3 升级到 1.12.4。公关 #1277 作者 @dependabot[bot]
  • 💚 修复 Python 3.7 的 CI 测试套件。公关 #1309 作者 @svlandeg
  • 👷 还原 “将 Codecov 添加到 CI,Smokeshow/Cloudflare 最近不稳定 (#1303)”。公关 #1306 作者 @svlandeg
  • 👷 将 Codecov 添加到 CI,Smokeshow/Cloudflare 最近不稳定。公关 #1303 作者 @tiangolo
  • 👷 向 Smokeshow 添加重试。公关 #1302 作者 @svlandeg
  • ⬆ 将 astral-sh/setup-uv 从 4 升级到 5。公关 #1249 作者 @dependabot[bot]
  • ⬆ 将 pillow 从 10.3.0 升级到 11.0.0。公关 #1139 作者 @dependabot[bot]
  • ⬆ 将 pypa/gh-action-pypi-publish 从 1.9.0 升级到 1.12.3。公关 #1240 作者 @dependabot[bot]
  • ⬆ 将 astral-sh/setup-uv 从 3 升级到 4。公关 #1225 作者 @dependabot[bot]
  • ⬆ 将 tiangolo/latest-changes 从 0.3.1 升级到 0.3.2。公关 #1207 作者 @dependabot[bot]
  • 🔨 更新文档预览脚本。公关 #1236 作者 @tiangolo
  • 🔧 更新 build-docs 过滤器路径。公关 #1235 作者 @tiangolo
  • 🔧 更新团队成员。公关 #1234 作者 @tiangolo
  • ⬆️ 将 markdown-include-variants 升级到 0.0.3 版本。公关 #1152 作者 @tiangolo
  • 👷 更新 issue manager 工作流程。公关 #1137 作者 @alejsdev
  • 👷 修复 smokeshow,检出 CI 中的文件。公关 #1136 作者 @tiangolo
  • 👷 在 CI 中使用 uv。公关 #1135 作者 @tiangolo
  • ➕ 添加文档依赖项 markdown-include-variants。公关 #1129 作者 @tiangolo
  • 🔨 更新脚本以标准化格式。公关 #1130 作者 @tiangolo
  • 👷 更新 labeler.yml。公关 #1128 作者 @tiangolo
  • 👷 更新 worfkow deploy-docs-notify URL。公关 #1126 作者 @tiangolo
  • 👷 升级 Cloudflare GitHub Action。公关 #1124 作者 @tiangolo
  • ⬆ [pre-commit.ci] pre-commit autoupdate。公关 #1097 作者 @pre-commit-ci[bot]
  • ⬆ 将 tiangolo/issue-manager 从 0.5.0 升级到 0.5.1。公关 #1107 作者 @dependabot[bot]
  • 👷 更新 issue-manager.yml。公关 #1103 作者 @tiangolo
  • 👷 修复 CI 中的覆盖率处理,每个矩阵运行一个名称。公关 #1104 作者 @tiangolo
  • 💚 使用 upload-artifact GH 操作时,将 include-hidden-files 设置为 True。公关 #1098 作者 @svlandeg
  • ⬆ [pre-commit.ci] pre-commit autoupdate。公关 #1088 作者 @pre-commit-ci[bot]

0.0.22

修复

  • 🐛 修复对带有 Optional[Annotated[x, f()]] 的类型的支持,例如 id: Optional[pydantic.UUID4]。公关 #1093 作者 @tiangolo

文档

  • ✏️ 修复 docs/virtual-environments.md 中的错别字。公关 #1085 作者 @tiangolo
  • 📝 添加虚拟环境和环境变量的文档,更新贡献指南。公关 #1082 作者 @tiangolo
  • 📝 添加关于仓库管理和团队的文档。公关 #1059 作者 @tiangolo
  • ✏️ 修复 cascade_delete 文档中的错别字。公关 #1030 作者 @tiangolo

内部

  • ✅ 重构 test_enums 以使其独立于之前的导入。公关 #1095 作者 @tiangolo
  • 👷 更新 latest-changes GitHub Action。公关 #1087 作者 @tiangolo
  • ⬆ [pre-commit.ci] pre-commit autoupdate。公关 #1028 作者 @pre-commit-ci[bot]
  • ⬆ 将 ruff 从 0.4.7 升级到 0.6.2。公关 #1081 作者 @dependabot[bot]
  • 🔧 更新 lint 脚本。公关 #1084 作者 @tiangolo
  • 👷 更新覆盖率的 Python 版本。公关 #1083 作者 @tiangolo
  • 🔧 更新覆盖率配置文件。公关 #1077 作者 @tiangolo
  • 🔧 向 pyproject.toml 添加 URL,在 PyPI 中显示。公关 #1074 作者 @tiangolo
  • 👷 不要同步标签,因为它会覆盖手动添加的标签。公关 #1073 作者 @tiangolo
  • 👷 更新 GitHub Action labeler 的配置,以仅添加一个标签。公关 #1072 作者 @tiangolo
  • 👷 更新 labeler GitHub Actions 权限和依赖项。公关 #1071 作者 @tiangolo
  • 👷 添加 GitHub Action label-checker。公关 #1069 作者 @tiangolo
  • 👷 添加 GitHub Action labeler。公关 #1068 作者 @tiangolo
  • 👷 更新 GitHub Action add-to-project。公关 #1067 作者 @tiangolo
  • 👷 添加 GitHub Action add-to-project。公关 #1066 作者 @tiangolo
  • 📝 更新注释中的警告框。公关 #1065 作者 @tiangolo
  • 📝 将链接从 github.com/tiangolo/sqlmodel 更新到 github.com/fastapi/sqlmodel。公关 #1064 作者 @tiangolo
  • 🔧 更新成员。公关 #1063 作者 @tiangolo
  • 💄 添加暗黑模式徽标。公关 #1061 作者 @tiangolo
  • 🔨 更新 docs.py 脚本以有条件地启用脏重载。公关 #1060 作者 @tiangolo
  • 🔧 更新 MkDocs 预览。公关 #1058 作者 @tiangolo
  • 💄 更新 Termynal 行高。公关 #1057 作者 @tiangolo
  • 👷 升级 build docs 配置。公关 #1047 作者 @tiangolo
  • 👷 为 test-redistribute 添加 alls-green。公关 #1055 作者 @tiangolo
  • 👷 更新 docs-previews 以处理无文档更改的情况。公关 #1056 作者 @tiangolo
  • 👷🏻 在评论中显示文档部署状态和预览 URL。公关 #1054 作者 @tiangolo
  • 🔧 启用自动暗黑模式。公关 #1046 作者 @tiangolo
  • 👷 更新 issue-manager。公关 #1045 作者 @tiangolo
  • 👷 更新 issue-manager.yml GitHub Action 权限。公关 #1040 作者 @tiangolo
  • ♻️ 重构 Deploy Docs GitHub Action 使其成为脚本,并更新令牌以准备组织迁移。公关 #1039 作者 @tiangolo

0.0.21

特性

  • ✨ 添加对级联删除关系的支持:cascade_deleteondeletepassive_deletes。初始公关 #983 作者 @estebanx64
  • 新文档位于:级联删除关系

文档

内部

0.0.20

特性

文档

  • ✏️ 修复 docs/tutorial/create-db-and-table.md 中的内部链接。公关 #911 作者 @tfpgh
  • ✏️ 在 create-db-and-table-with-db-browser.md 中添加缺失的步骤。公关 #976 作者 @alejsdev
  • ✏️ 修复 docs/tutorial 中的错别字。公关 #943 作者 @luco17
  • ✏️ 修复 sqlmodel/_compat.py 中的错别字。公关 #950 作者 @Highfire1
  • ✏️ 更新教程中的 pip 安装命令。公关 #975 作者 @alejsdev
  • ✏️ 修复 docs/tutorial/relationship-attributes/index.md 中的错别字。公关 #880 作者 @UncleGoogle

内部

  • ⬆ [pre-commit.ci] pre-commit autoupdate。公关 #979 作者 @pre-commit-ci[bot]
  • 🔨 更新文档 Termynal 脚本,使其不包含本地开发的代码行号。公关 #1018 作者 @tiangolo

0.0.19

修复

  • 🐛 修复 pydantic EmailStr 支持和多个 String 子类中的 max_length。公关 #966 作者 @estebanx64
  • 🐛 修复在使用 Pydantic v2 的 Pydantic 模型上设置 max_length 时设置 varchar 限制的问题。公关 #963 作者 @estebanx64

重构

  • ♻️ 重构生成 select 模板,以将模板化代码隔离到最小范围。公关 #967 作者 @tiangolo

升级

  • ⬆️ 将最低 SQLAlchemy 版本更新到 2.0.14,因为该版本包含内部使用的 TryCast。公关 #964 作者 @tiangolo

文档

  • ✏️ 修复 docs/features.md 中指向 @dataclass_transform(现在是 PEP 681)的损坏链接。公关 #753 作者 @soof-golan

内部

  • ⬆️ 升级 Ruff 和 Black。公关 #968 作者 @tiangolo
  • ⬆ 将 tiangolo/issue-manager 从 0.4.1 升级到 0.5.0。公关 #922 作者 @dependabot[bot]
  • 📌 在测试中固定 typing-extensions,以兼容 Python 3.8、dirty-equals、Pydantic。公关 #965 作者 @tiangolo
  • 👷 更新 GitHub Actions 以下载和上传工件。公关 #936 作者 @tiangolo
  • 👷 调整 CI 以进行 test-redistribute,为 slim 添加所需的环境变量。公关 #929 作者 @tiangolo

0.0.18

内部

  • ✨ 添加 sqlmodel-slim 设置。公关 #916 作者 @tiangolo

未来 SQLModel 将包含标准默认推荐包,而 sqlmodel-slim 将不包含这些推荐的标准包,并带有一组可选依赖项 sqlmodel-slim[standard],相当于 sqlmodel,供那些想要选择不使用这些包的用户使用。

  • 🔧 重新启用 MkDocs Material Social 插件。公关 #915 作者 @tiangolo

0.0.17

重构

  • ♻️ 重构类型以正确支持 Pydantic 2.7。公关 #913 作者 @tiangolo

文档

  • 📝 将 ModelRead 更新为 ModelPublic 文档和示例。公关 #885 作者 @estebanx64
  • ✨ 添加 Python 3.10 和 3.9 的源代码示例,并更新了语法。公关 #842 作者 @tiangolo@estebanx64

内部

  • ⬆ 将 actions/setup-python 从 4 升级到 5。公关 #733 作者 @dependabot[bot]
  • 🔨 更新内部脚本并移除未使用的脚本。公关 #914 作者 @tiangolo
  • 🔧 将内部构建配置从 Poetry 迁移到 PDM。公关 #912 作者 @tiangolo
  • 🔧 更新 MkDocs,禁用卡片,同时我可以升级到最新的 MkDocs Material,这修复了社交卡片的问题。公关 #888 作者 @tiangolo
  • 👷 添加 cron 以每周一运行测试。公关 #869 作者 @estebanx64
  • ⬆️ 升级 Ruff 版本和配置。公关 #859 作者 @tiangolo
  • 🔥 移除 Jina QA Bot,因为它已停止使用。公关 #840 作者 @tiangolo

0.0.16

特性

0.0.15

修复

  • 🐛 修复类初始化与 Pydantic 和 SQLModel 的兼容性,修复了最新 Pydantic 揭示的错误。公关 #807 作者 @tiangolo

内部

  • ⬆ 将 tiangolo/issue-manager 从 0.4.0 升级到 0.4.1。公关 #775 作者 @dependabot[bot]
  • 👷 修复 GitHub Actions build docs 过滤器路径,以用于 GitHub 工作流程。公关 #738 作者 @tiangolo

0.0.14

特性

  • ✨ 添加对 Pydantic v2 的支持(同时在 v2 不可用时保持对 v1 的支持)。公关 #722 作者 @tiangolo,包括公关 #699 中由 @AntonDeMeester 完成的初始工作。

0.0.13

修复

  • ♻️ 重构 select 的类型生成,重新排序以优先考虑模型,从而优化编辑器支持。公关 #718 作者 @tiangolo

重构

  • 🔇 不要为 execute 引发弃用警告,因为它在内部自动使用。公关 #716 作者 @tiangolo
  • ✅ 将 OpenAPI 测试移动到内联,以简化使用 Pydantic v2 更新它们的过程。公关 #709 作者 @tiangolo

升级

  • ⬆️ 添加对 Python 3.11 和 Python 3.12 的支持。公关 #710 作者 @tiangolo

文档

  • ✏️ 修复错别字,简化文档中各处的 “Sister Margaret's” 中的单引号/撇号字符。公关 #721 作者 @tiangolo
  • 📝 更新 Decimal 的文档,使用正确的类型。公关 #719 作者 @tiangolo
  • 📝 添加 Python 3.9 和 3.10 的源代码示例。公关 #715 作者 @tiangolo

内部

  • 🙈 更新 gitignore,包含所有覆盖率文件。公关 #711 作者 @tiangolo
  • 🔧 使用新的 pymdown 扩展更新配置。公关 #712 作者 @tiangolo
  • 🔧 更新文档构建设置,添加对赞助商的支持,添加赞助商 GOVCERT.LU。公关 #720 作者 @tiangolo
  • ⬆ [pre-commit.ci] pre-commit autoupdate。公关 #697 作者 @pre-commit-ci[bot]
  • 🔧 在本地开发期间在文档中显示行号。公关 #714 作者 @tiangolo
  • 📝 使用新的 pymdown 扩展格式更新 details 语法。公关 #713 作者 @tiangolo

0.0.12

特性

内部

0.0.11

功能特性

  • ✨ 添加支持通过 sa_type 将自定义 SQLAlchemy 类型传递给 Field()。PR #505@maru0123-2004 贡献。
    • 如果您之前使用了不兼容的参数组合,并且这些参数没有生效,但现在您将收到类型错误和运行时错误提示,那么您可能会认为这是一个破坏性更改。
  • ✨ 不允许列和关系的字段参数的无效组合,sa_column 排除 sa_column_argsprimary_keynullable 等。PR #681@tiangolo 贡献。

文档

  • 🎨 更新内联源代码示例,隐藏注释中的 #(来自 MkDocs Material)。PR #677@Matthieu-LAURENT39 贡献。

内部

  • ⬆ 更新 coverage 要求从 ^6.2 到 >=6.2,<8.0。PR #663@dependabot[bot] 贡献。
  • ⬆ 更新 mkdocs-material 要求从 9.1.21 到 9.2.7。PR #675@dependabot[bot] 贡献。
  • ⬆️ 手动升级 mypy。PR #684@tiangolo 贡献。
  • ⬆ 更新 black 要求从 ^22.10.0 到 >=22.10,<24.0。PR #664@dependabot[bot] 贡献。
  • 👷 更新 CI,仅在 secrets 可用时为 Dependabot 构建 MkDocs Insiders。PR #683@tiangolo 贡献。

0.0.10

功能特性

  • ✨ 添加支持来自 Pydantic 1.9.0 及以上版本的所有 Field 参数,使 Pydantic 1.9.0 成为最低要求版本。PR #440@daniil-berg 贡献。

内部

  • 🔧 采用 Ruff 进行格式化。PR #679@tiangolo 贡献。

0.0.9

破坏性更改

  • 🗑️ 弃用 Python 3.6 并升级 Poetry 和 Poetry Version Plugin。PR #627@tiangolo 贡献。

功能特性

  • ✨ 当类型无效时,引发更清晰的错误。PR #425@ddanier 贡献。

修复

  • 🐛 修复 AsyncSession 类型注释中 exec() 的错误。PR #58@Bobronium 贡献。
  • 🐛 修复允许直接使用 ForeignKey 的问题,从 SQLModelMetaclass.__init__ 中删除重复的列构造,并将最低 SQLAlchemy 版本升级到 >=1.4.36。PR #443@daniil-berg 贡献。
  • 🐛 修复 get_sqlalchemy_type 中的枚举类型检查顺序。PR #669@tiangolo 贡献。
  • 🐛 修复 SQLAlchemy 版本 1.4.36 破坏 SQLModel 关系的问题 (#315)。PR #461@byrman 贡献。

升级

  • ⬆️ 升级对 SQLAlchemy 1.4.49 的支持,更新测试。PR #519@sandrotosi 贡献。
  • ⬆ 将 SQLAlchemy 版本要求提高到至少 1.4.29(与 #434 相关)。PR #439@daniil-berg 贡献。

文档

  • 📝 澄清 docs/tutorial/create-db-and-table.md 中内存 SQLite 数据库的描述。PR #601@SimonCW 贡献。
  • 📝 调整 docs/tutorial/fastapi/multiple-models.md 中的措辞。PR #674@tiangolo 贡献。
  • ✏️ 修复运行测试的贡献说明,更新脚本名称。PR #634@PookieBuns 贡献。
  • 📝 更新数据库入门文档的链接。PR #593@abenezerBelachew 贡献。
  • 📝 更新文档,在带有 limitwhere 的示例中使用 offset。PR #273@jbmchuck 贡献。
  • 📝 修复 Pydantic 字段的文档,使用 le (lte 无效,请使用 le)。PR #207@jrycw 贡献。
  • 📝 更新 docs/db-to-code.md 中的过时链接。PR #649@MatveyF 贡献。
  • ✏️ 修复使用 codespell 发现的拼写错误。PR #520@kianmeng 贡献。
  • 📝 修复主页上的拼写错误(重复)。PR #631@Mr-DRP 贡献。
  • 📝 更新发布说明,为 PR 添加第二作者。PR #429@br-follow 贡献。
  • 📝 更新关于如何在 docs/tutorial/relationship-attributes/define-relationships-attributes.md 中使外键成为必需的说明。PR #474@jalvaradosegura 贡献。
  • 📝 更新帮助 SQLModel 文档。PR #548@tiangolo 贡献。
  • ✏️ 修复内部函数名称 get_sqlachemy_type() 中的拼写错误。PR #496@cmarqu 贡献。
  • ✏️ 修复文档中的拼写错误。PR #446@davidbrochart 贡献。
  • ✏️ 修复 docs/tutorial/create-db-and-table.md 中的拼写错误。PR #477@FluffyDietEngine 贡献。
  • ✏️ 修复文档中的小拼写错误。PR #481@micuffaro 贡献。

内部

  • ⬆ [pre-commit.ci] pre-commit 自动更新。PR #672@pre-commit-ci[bot] 贡献。
  • ⬆ Bump dawidd6/action-download-artifact 从 2.24.2 到 2.28.0。PR #660@dependabot[bot] 贡献。
  • ✅ 重构 OpenAPI FastAPI 测试以简化后续更新,这只是移动了代码位置,没有功能更改。PR #671@tiangolo 贡献。
  • ⬆ Bump actions/checkout 从 3 到 4。PR #670@dependabot[bot] 贡献。
  • 🔧 更新 mypy 配置,使用 strict = true 代替手动配置。PR #428@michaeloliverx 贡献。
  • ⬆️ 升级 MkDocs Material。PR #668@tiangolo 贡献。
  • 🎨 使用 pre-commit 和 Ruff 更新文档格式和引用。PR #667@tiangolo 贡献。
  • 🎨 在所有文件上运行 pre-commit 并自动格式化。PR #666@tiangolo 贡献。
  • 👷 迁移到 Ruff 并添加 pre-commit。PR #661@tiangolo 贡献。
  • 🛠️ 添加 CITATION.cff 文件用于学术引用。PR #13@sugatoray 贡献。
  • 👷 更新文档部署到 Cloudflare。PR #630@tiangolo 贡献。
  • 👷‍♂️ 升级文档的 CI。PR #628@tiangolo 贡献。
  • 👷 更新带有 Tmate 的 CI 调试模式。PR #629@tiangolo 贡献。
  • 👷 更新 latest changes token。PR #616@tiangolo 贡献。
  • ⬆️ 升级分析工具。PR #558@tiangolo 贡献。
  • 🔧 更新 new issue chooser 以指向 GitHub Discussions。PR #546@tiangolo 贡献。
  • 🔧 为 GitHub Discussion 问题添加模板并更新 issues 模板。PR #544@tiangolo 贡献。
  • 👷 重构 CI artifact 上传/下载以用于文档预览。PR #514@tiangolo 贡献。
  • ⬆ Bump actions/cache 从 2 到 3。PR #497@dependabot[bot] 贡献。
  • ⬆ Bump dawidd6/action-download-artifact 从 2.24.0 到 2.24.2。PR #493@dependabot[bot] 贡献。
  • 🔧 更新 Smokeshow 覆盖率阈值。PR #487@tiangolo 贡献。
  • 👷 从 Codecov 迁移到 Smokeshow。PR #486@tiangolo 贡献。
  • ⬆ Bump actions/setup-python 从 2 到 4。PR #411@dependabot[bot] 贡献。
  • ⬆ 更新 black 要求从 ^21.5-beta.1 到 ^22.10.0。PR #460@dependabot[bot] 贡献。
  • ➕ 为 MkDocs Material 添加额外的开发依赖项。PR #485@tiangolo 贡献。
  • ⬆ 更新 mypy 要求从 0.930 到 0.971。PR #380@dependabot[bot] 贡献。
  • ⬆ 更新 coverage 要求从 ^5.5 到 ^6.2。PR #171@dependabot[bot] 贡献。
  • ⬆ Bump codecov/codecov-action 从 2 到 3。PR #415@dependabot[bot] 贡献。
  • ⬆ Bump actions/upload-artifact 从 2 到 3。PR #412@dependabot[bot] 贡献。
  • ⬆ 更新 flake8 要求从 ^3.9.2 到 ^5.0.4。PR #396@dependabot[bot] 贡献。
  • ⬆ 更新 pytest 要求从 ^6.2.4 到 ^7.0.1。PR #242@dependabot[bot] 贡献。
  • ⬆ Bump actions/checkout 从 2 到 3.1.0。PR #458@dependabot[bot] 贡献。
  • ⬆ Bump dawidd6/action-download-artifact 从 2.9.0 到 2.24.0。PR #470@dependabot[bot] 贡献。
  • 👷 更新 Dependabot 配置。PR #484@tiangolo 贡献。

0.0.8

修复

  • 🐛 修复自动检测和设置 nullable,允许在字段中覆盖。PR #423@JonasKs@br-follow 贡献。
  • ♻️ 更新 expresion.py,从 Jinja2 模板同步,实现 inherit_cache 以解决类似错误:SAWarning: Class SelectOfScalar will not make use of SQL compilation caching。PR #422@tiangolo 贡献。

文档

  • 📝 调整和澄清 docs/tutorial/create-db-and-table.md 的文档。PR #426@tiangolo 贡献。
  • ✏ 修复 docs/tutorial/connect/remove-data-connections.md 中的拼写错误。PR #421@VerdantFox 贡献。

0.0.7

功能特性

  • ✨ 允许在 Field() 中为列设置 unique。PR #83@raphaelgibson 贡献。
  • ✨ 更新 GUID 处理以使用 stdlib UUID.hex 而不是 int。PR #26@andrewbolster 贡献。
  • ✨ 当使用没有匹配的 SQLAlchemy 类型的 Pydantic 字段类型时,引发异常。PR #18@elben10 贡献。
  • ⬆ 升级 SQLAlchemy 的约束 = ">=1.4.17,<=1.4.41"。PR #371@RobertRosca 贡献。
  • ✨ 添加新的 Session.get() 参数 execution_options。PR #302@tiangolo 贡献。

修复

  • 🐛 修复 Model.parse_obj()Model.validate() 的类型注释。PR #321@phi-friday 贡献。
  • 🐛 修复 SelectSelectOfScalar 继承缓存以避免警告:SAWarning: Class SelectOfScalar will not make use of SQL compilation caching。PR #234@rabinadk1 贡献。
  • 🐛 修复非默认值的验证器处理。PR #253@byrman 贡献。
  • 🐛 修复模型中标记为“set”的字段。PR #117@statt8900 贡献。
  • 🐛 修复 SQLAlchemy 中的 Enum 处理。PR #165@chriswhite199 贡献。
  • 🐛 修复不接受 None 的字段设置 nullable 属性的问题。PR #79@van51 贡献。
  • 🐛 修复 SQLAlchemy 版本 1.4.36 破坏 SQLModel 关系的问题 (#315)。PR #322@byrman 贡献。

文档

  • 📝 更新用于更新的模型的文档,id 不应是可更新的。PR #335@kurtportelli 贡献。
  • ✏ 修复读取关系文档中的变量/拼写错误,hero_spider_boy.id => hero_spider_boy.team_id。PR #106@yoannmos 贡献。
  • 🎨 移除文档中不需要的高亮。PR #233@jalvaradosegura 贡献。
  • ✏ 修复 docs/databases.mddocs/tutorial/index.md 中的拼写错误。PR #35@prrao87 贡献。
  • ✏ 修复 docs/tutorial/relationship-attributes/define-relationships-attributes.md 中的拼写错误。PR #239@jalvaradosegura 贡献。
  • ✏ 修复 docs/tutorial/fastapi/simple-hero-api.md 中的拼写错误。PR #80@joemudryk 贡献。
  • ✏ 修复文档中多个文件中的拼写错误。PR #400@VictorGambarini 贡献。
  • ✏ 修复 docs/tutorial/code-structure.md 中的拼写错误。PR #344@marciomazza 贡献。
  • ✏ 修复 docs/db-to-code.md 中的拼写错误。PR #155@gr8jam 贡献。
  • ✏ 修复 docs/contributing.md 中的拼写错误。PR #323@Fardad13 贡献。
  • ✏ 修复 docs/tutorial/fastapi/tests.md 中的拼写错误。PR #265@johnhoman 贡献。
  • ✏ 修复 docs/tutorial/where.md 中的拼写错误。PR #286@jalvaradosegura 贡献。
  • ✏ 修复 docs/tutorial/fastapi/update.md 中的拼写错误。PR #268@cirrusj 贡献。
  • ✏ 修复 docs/tutorial/fastapi/simple-hero-api.md 中的拼写错误。PR #247@hao-wang 贡献。
  • ✏ 修复 docs/tutorial/automatic-id-none-refresh.md, docs/tutorial/fastapi/update.md, docs/tutorial/select.md 中的拼写错误。PR #185@rootux 贡献。
  • ✏ 修复 docs/databases.md 中的拼写错误。PR #177@seandlg 贡献。
  • ✏ 修复 docs/tutorial/fastapi/update.md 中的拼写错误。PR #162@wmcgee3 贡献。
  • ✏ 修复 docs/tutorial/code-structure.md, docs/tutorial/fastapi/multiple-models.md, docs/tutorial/fastapi/simple-hero-api.md, docs/tutorial/many-to-many/index.md 中的拼写错误。PR #116@moonso 贡献。
  • ✏ 修复 docs/tutorial/fastapi/teams.md 中的拼写错误。PR #154@chrisgoddard 贡献。
  • ✏ 修复关于关系和 back_populates 的示例中的拼写错误变量,始终使用 hero 而不是 owner。PR #120@onionj 贡献。
  • ✏ 修复 docs/tutorial/fastapi/tests.md 中的拼写错误。PR #113@feanil 贡献。
  • ✏ 修复 docs/tutorial/where.md 中的拼写错误。PR #72@ZettZet 贡献。
  • ✏ 修复 docs/tutorial/code-structure.md 中的拼写错误。PR #91@dhiraj 贡献。
  • ✏ 修复 docs/help.md 中指向新闻邮件注册的错误链接。PR #84@mborus 贡献。
  • ✏ 修复 docs/tutorial/many-to-many/create-models-with-link.md 中的拼写错误。PR #45@xginn8 贡献。
  • ✏ 修复 docs/tutorial/index.md 中的拼写错误。PR #398@ryangrose 贡献。

内部

  • ♻ 重构内部语句以简化代码。PR #53@yezz123 贡献。
  • ♻ 重构内部导入以减少冗余。PR #272@aminalaee 贡献。
  • ⬆ 更新 FastAPI 的开发要求从 ^0.68.0^0.68.1。PR #48@alucarddelta 贡献。
  • ⏪ 恢复 Poetry 升级,以便首先发布支持 Python 3.6 的版本。PR #417@tiangolo 贡献。
  • 👷 为 GitHub Actions 添加 dependabot。PR #410@tiangolo 贡献。
  • ⬆️ 升级 Poetry 到版本 ==1.2.0b1。PR #303@tiangolo 贡献。
  • 👷 为 Python 3.10 添加 CI。PR #305@tiangolo 贡献。
  • 📝 将 Jina 的 QA Bot 添加到文档中,以帮助想要快速提问的人。PR #263@tiangolo 贡献。
  • 👷 升级 Codecov GitHub Action。PR #304@tiangolo 贡献。
  • 💚 仅在 master 分支上推送时运行 CI,以避免在 PR 上重复运行。PR #244@tiangolo 贡献。
  • 🔧 升级 MkDocs Material 并更新配置。PR #217@tiangolo 贡献。
  • ⬆ 升级 mypy,修复类型注释。PR #218@tiangolo 贡献。

0.0.6

破坏性更改

SQLModel 不再默认为每个列创建索引,现在索引是选择性的。您可以在 PR #205 中阅读更多相关信息。

在此更改之前,如果您有如下模型

from typing import Optional

from sqlmodel import Field, SQLModel


class Hero(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    name: str
    secret_name: str
    age: Optional[int] = None

...在创建表时,SQLModel 版本 0.0.5 及更低版本,还会为 namesecret_nameage 创建索引(id 是主键,因此不需要额外的索引)。

如果您依赖于为每个列都创建索引,那么现在您可以(并且必须)显式定义它们

class Hero(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    name: str = Field(index=True)
    secret_name: str = Field(index=True)
    age: Optional[int] = Field(default=None, index=True)

您很可能不需要为所有列都创建索引。例如,您可能只需要为 nameage 创建索引,而不需要为 secret_name 创建索引。在这种情况下,您可以将模型定义为

class Hero(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    name: str = Field(index=True)
    secret_name: str
    age: Optional[int] = Field(default=None, index=True)

如果您已经使用 SQLModel 版本 0.0.5 或更低版本创建了数据库表,那么它也会在数据库中创建这些索引。在这种情况下,如果这些索引是不必要的,您可能需要手动删除(移除)其中一些索引,以避免额外的性能和空间成本。

根据您使用的数据库,会有不同的方法来查找可用的索引。

例如,假设您不再需要 secret_name 的索引。您可以检查数据库中的当前索引,并找到 secret_name 的索引,它可能被命名为 ix_hero_secret_name。然后您可以使用 SQL 删除它

DROP INDEX ix_hero_secret_name

DROP INDEX ix_hero_secret_name ON hero;

这是新的、详尽的文档,解释了索引以及如何使用它们:索引 - 优化查询

文档

  • ✨ 记录索引并使其成为可选项。这是新文档:索引 - 优化查询。这与上面破坏性更改中描述的更改相同。PR #205@tiangolo 贡献。
  • ✏ 修复 FastAPI 教程中的拼写错误。PR #192@yaquelinehoyos 贡献。
  • 📝 添加许可证文件的链接。PR #29@sobolevn 贡献。
  • ✏ 修复文档标题中的拼写错误。PR #28@Batalex 贡献。
  • ✏ 修复多个拼写错误和一些措辞修改。PR #22@egrim 贡献。
  • ✏ 修复 docs/tutorial/automatic-id-none-refresh.md 中的拼写错误。PR #14@leynier 贡献。
  • ✏ 修复 docs/tutorial/index.mddocs/databases.md 中的拼写错误。PR #5@sebastianmarines 贡献。

0.0.5

功能特性

文档

  • ✏ 更新 decimal 教程源以保持一致性。PR #188@tiangolo 贡献。

内部

  • 🔧 在 CI 中拆分 MkDocs insiders 构建以支持从 PR 构建。PR #186@tiangolo 贡献。
  • 🎨 格式化 expression.py 和 expression 模板,当前 CI 需要。PR #187@tiangolo 贡献。
  • 🐛 修复文档 light/dark 主题切换器。PR #1@Lehoczky 贡献。
  • 🔧 添加 MkDocs Material social cards。PR #90@tiangolo 贡献。
  • ✨ 更新类型注释并升级 mypy。PR #173@tiangolo 贡献。

0.0.4

  • 🎨 修复 PyCharm 中 select 结果的类型检测。PR #15@tiangolo 贡献。

0.0.3

  • ⬆️ 更新和放宽 sqlalchemy-stubs 的规范范围。PR #4@tiangolo 贡献。

0.0.2

  • 这包括在首次 CI 运行期间检测到的几个小错误修复。
  • 💚 修复 CI 安装和测试。PR #2@tiangolo 贡献。

0.0.1

  • 首次发布。🎉