跳到内容

发布说明

最新更改

0.0.27

升级

  • ⬆️ 添加对 Python 3.14 的支持。PR #1578@svlandeg 提交。

0.0.26

修复

  • 🐛 修复 model_dump 中的属性处理,以兼容最新版本的 Pydantic。PR #1595@spazm 提交。

文档

  • 📝 修复 docs/tutorial/fastapi/simple-hero-api.md 中的拼写错误。PR #1583@kofi-kusi 提交。

内部

0.0.25

功能

  • ✨ 为 exec 方法添加重载以支持 insertupdatedelete 语句。PR #1342@seriaati 提交。

升级

  • ⬆️ 停止支持 Python 3.7,要求 Python 3.8 或更高版本。PR #1316@svlandeg 提交。

文档

  • ✏️ 修复 docs/tutorial/relationship-attributes/cascade-delete-relationships.md 中的拼写错误。PR #1543@YuriiMotov 提交。
  • 🍱 更新 SVG 文件,每个图一个文件,使用无衬线字体。PR #1373@tiangolo 提交。
  • 📝 修正 docs/tutorial/insert.md 中的语法。PR #1368@brettcannon 提交。
  • 📝 更新 docs/tutorial/fastapi/relationships.md。PR #1365@Foxerine 提交。
  • ✏️ 修正 docs/learn/index.md 中的语法。PR #1363@brettcannon 提交。
  • 📝 更新所有文档中对 Optional 的引用,以使用 Python 3.10 中的新语法,例如 int | None。PR #1351@tiangolo 提交。
  • 📝 在 FastAPI 教程中更新 FastAPI CLI 的安装和使用。PR #1350@tiangolo 提交。
  • 📝 更新 FastAPI 教程文档,使用新的 model.sqlmodel_update() 而不是旧的 setattr()。PR #1117@jpizquierdo 提交。
  • ✏️ 更新 docs/virtual-environments.md。PR #1321@sylvainHellin 提交。

内部

0.0.24

升级

  • ⬆️ 添加对 Python 3.13 的支持。PR #1289@svlandeg 提交。

内部

0.0.23

修复

  • 🐛 修复 Field 构造函数中的类型注解。PR #1304@AlanBogarin 提交。
  • 🐛 修复 Pydantic 版本检查,适用于 2.10.x 及更高版本。PR #1255@asiunov 提交。

重构

  • 🚨 修复新 Pydantic 的类型。PR #1131@tiangolo 提交。

文档

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

内部

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

0.0.22

修复

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

文档

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

内部

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

0.0.21

功能

  • ✨ 添加了对级联删除关系的支持:cascade_deleteondeletepassive_deletes。最初的 PR #983@estebanx64 提交。
  • 新文档位于:级联删除关系

文档

内部

0.0.20

功能

文档

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

内部

  • ⬆ [pre-commit.ci] pre-commit 自动更新。PR #979@pre-commit-ci[bot] 提交。
  • 🔨 更新文档 Termynal 脚本,不包含本地开发时的行号。PR #1018@tiangolo 提交。

0.0.19

修复

  • 🐛 修复 Pydantic EmailStr 支持以及多个 String 子类中的 max_length。PR #966@estebanx64 提交。
  • 🐛 修复在使用 Pydantic v2 的 Pydantic 模型上设置 max_length 时,设置 varchar 限制的问题。PR #963@estebanx64 提交。

重构

  • ♻️ 重构生成选择模板,将模板代码隔离到最小。PR #967@tiangolo 提交。

升级

  • ⬆️ 将 SQLAlchemy 的最低版本更新到 2.0.14,因为该版本包含了内部使用的 TryCast。PR #964@tiangolo 提交。

文档

  • ✏️ 修复 docs/features.md 中指向 @dataclass_transform(现在是 PEP 681)的断开链接。PR #753@soof-golan 提交。

内部

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

0.0.18

内部

  • ✨ 添加 sqlmodel-slim 设置。PR #916@tiangolo 提交。

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

  • 🔧 重新启用 MkDocs Material Social 插件。PR #915@tiangolo 提交。

0.0.17

重构

  • ♻️ 重构类型以正确支持 Pydantic 2.7。PR #913@tiangolo 提交。

文档

  • 📝 更新 ModelRead 到 ModelPublic 文档和示例。PR #885@estebanx64 提交。
  • ✨ 添加了 Python 3.10 和 3.9 的源代码示例,并更新了语法。PR #842@tiangolo@estebanx64 提交。

内部

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

0.0.16

功能

0.0.15

修复

  • 🐛 修复了与 Pydantic 和 SQLModel 的类初始化兼容性问题,解决了最新 Pydantic 版本揭示的错误。PR #807@tiangolo 提交。

内部

  • ⬆ 将 tiangolo/issue-manager 从 0.4.0 升级到 0.4.1。PR #775@dependabot[bot] 提交。
  • 👷 修复 GitHub Actions 构建文档的 GitHub 工作流路径过滤器。PR #738@tiangolo 提交。

0.0.14

功能

  • ✨ 添加对 Pydantic v2 的支持(同时在没有 v2 的情况下保持对 v1 的支持)。PR #722@tiangolo 提交,其中包括 @AntonDeMeester 在 PR #699 中的初步工作。

0.0.13

修复

  • ♻️ 重构选择的类型生成,重新排序以优先处理模型,从而优化编辑器支持。PR #718@tiangolo 提交。

重构

  • 🔇 不再针对自动内部使用的 execute 提出弃用警告。PR #716@tiangolo 提交。
  • ✅ 将 OpenAPI 测试内联以简化后续使用 Pydantic v2 进行更新。PR #709@tiangolo 提交。

升级

  • ⬆️ 添加对 Python 3.11 和 Python 3.12 的支持。PR #710@tiangolo 提交。

文档

  • ✏️ 修复拼写错误,简化文档中所有“Sister Margaret's”中的单引号/撇号字符。PR #721@tiangolo 提交。
  • 📝 更新 Decimal 文档,使用正确的类型。PR #719@tiangolo 提交。
  • 📝 添加了 Python 3.9 和 3.10 的源代码示例。PR #715@tiangolo 提交。

内部

  • 🙈 更新 gitignore,包含所有覆盖文件。PR #711@tiangolo 提交。
  • 🔧 使用新的 pymdown 扩展更新配置。PR #712@tiangolo 提交。
  • 🔧 更新文档构建设置,添加对赞助商的支持,添加赞助商 GOVCERT.LU。PR #720@tiangolo 提交。
  • ⬆ [pre-commit.ci] pre-commit 自动更新。PR #697@pre-commit-ci[bot] 提交。
  • 🔧 在本地开发期间在文档中显示行号。PR #714@tiangolo 提交。
  • 📝 使用新的 pymdown 扩展格式更新详细信息语法。PR #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 提交。

修复

  • 🐛 修复 AsyncSessionexec() 的类型注解。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 字段使用 lelte 无效,使用 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] 提交。
  • ⬆ 将 dawidd6/action-download-artifact 从 2.24.2 升级到 2.28.0。PR #660@dependabot[bot] 提交。
  • ✅ 重构 OpenAPI FastAPI 测试以简化后续更新,这只是移动了内容,没有更改。PR #671@tiangolo 提交。
  • ⬆ 将 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 提交。
  • 👷 更新最新更改 token。PR #616@tiangolo 提交。
  • ⬆️ 升级 analytics。PR #558@tiangolo 提交。
  • 🔧 更新新问题选择器以指向 GitHub Discussions。PR #546@tiangolo 提交。
  • 🔧 添加 GitHub 讨论问题的模板并更新问题模板。PR #544@tiangolo 提交。
  • 👷 重构 CI 工件上传/下载以用于文档预览。PR #514@tiangolo 提交。
  • ⬆ 将 actions/cache 从 2 升级到 3。PR #497@dependabot[bot] 提交。
  • ⬆ 将 dawidd6/action-download-artifact 从 2.24.0 升级到 2.24.2。PR #493@dependabot[bot] 提交。
  • 🔧 更新 Smokeshow 覆盖率阈值。PR #487@tiangolo 提交。
  • 👷 从 Codecov 迁移到 Smokeshow。PR #486@tiangolo 提交。
  • ⬆ 将 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] 提交。
  • ⬆ 将 codecov/codecov-action 从 2 升级到 3。PR #415@dependabot[bot] 提交。
  • ⬆ 将 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] 提交。
  • ⬆ 将 actions/checkout 从 2 升级到 3.1.0。PR #458@dependabot[bot] 提交。
  • ⬆ 将 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 中的枚举处理。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.mddocs/tutorial/fastapi/update.mddocs/tutorial/select.md 中的拼写错误。PR #185@rootux 提交。
  • ✏ 修复 docs/databases.md 中的拼写错误。PR #177@seandlg 提交。
  • ✏ 修复 docs/tutorial/fastapi/update.md 中的拼写错误。PR #162@wmcgee3 提交。
  • ✏ 修复 docs/tutorial/code-structure.mddocs/tutorial/fastapi/multiple-models.mddocs/tutorial/fastapi/simple-hero-api.mddocs/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 机器人,以帮助需要快速提问的用户。PR #263@tiangolo 提交。
  • 👷 升级 Codecov GitHub Action。PR #304@tiangolo 提交。
  • 💚 仅在主分支上推送到代码时运行 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 及以下版本还会为 name 创建一个索引,为 secret_name 创建一个索引,为 age 创建一个索引(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

功能

文档

  • ✏ 更新小数教程源以保持一致性。PR #188@tiangolo 提交。

内部

  • 🔧 在 CI 中拆分 MkDocs insiders 构建以支持从 PR 构建。PR #186@tiangolo 提交。
  • 🎨 格式化 expression.py 和表达式模板,目前 CI 需要。PR #187@tiangolo 提交。
  • 🐛 修复文档明暗主题切换器。PR #1@Lehoczky 提交。
  • 🔧 添加 MkDocs Material 社交卡片。PR #90@tiangolo 提交。
  • ✨ 更新类型注解并升级 mypy。PR #173@tiangolo 提交。

0.0.4

  • 🎨 修复 PyCharm 中选择结果的类型检测。PR #15@tiangolo 提交。

0.0.3

  • ⬆️ 更新并放宽 sqlalchemy-stubs 的规范范围。PR #4@tiangolo 提交。

0.0.2

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

0.0.1

  • 首次发布。🎉