AI 快讯 编译自 simon_willison #工具评测#开源项目#数据库

alchemy-utils 0.1a0:AI 生成的数据库无关版 sqlite-utils,支持 PostgreSQL、SQLite 和 DuckDB

Simon Willison 发布 alchemy-utils 0.1a0,一个基于 SQLAlchemy、兼容 sqlite-utils 核心 API 的 Python 库,支持 PostgreSQL、SQLite 和 DuckDB。本文介绍其功能、使用方式,并分析对中文开发者的意义。

编译发布 2026/08/13 原文发布 2026/08/12

一句话看懂

alchemy-utils 0.1a0 是 Simon Willison 用 AI 生成的数据库无关版 sqlite-utils,基于 SQLAlchemy,支持 PostgreSQL、SQLite 和 DuckDB。

详细发生了什么

Simon Willison 一直想做一个数据库无关版的 sqlite-utils。今天早上,他让 Codex 和 GPT-5.6 Sol Ultra 构建了一个原型。他给出的提示词要求:研究构建一个与 sqlite-utils 核心 API 相同的库,特别是 insert、upsert、insert_all、upsert_all、create、update 方法以及表内省功能,但底层使用 SQLAlchemy 以支持多种数据库引擎;测试目标包括 PostgreSQL、SQLite 和 DuckDB;参考 ~/dev/sqlite-utils 的代码;使用 uv init 初始化项目,采用红绿 TDD 和 pytest 进行测试。

结果只用了很少的后续提示就完成了项目,并发布为 alpha 版本。Simon 展示了一个一行命令,用于列出本地 PostgreSQL 博客数据库表中的行:

uvx --with 'alchemy-utils[postgresql]' alchemy-utils rows 'postgresql+psycopg://simon@localhost:5432/simonwillisonblog' redirects_redirect

输出为 JSON 格式,包含 id、domain、path、target、created 等字段。

中文圈视角

这个项目对中文开发者有几点启示。首先,它展示了 AI 辅助编程的潜力:Simon 用自然语言描述需求,AI 生成了可用的库,这降低了开发门槛。国内开发者可以尝试类似工作流,用国产模型如 DeepSeek 或 Kimi 来辅助开发,效果可能也不错。

其次,alchemy-utils 提供了跨数据库的统一接口,对于需要同时使用 SQLite 和 PostgreSQL 的项目很有用。国内很多中小团队常用 SQLite 做原型,生产环境切换到 PostgreSQL,这个库可以平滑过渡。不过目前还是 alpha 版本,稳定性有待验证,建议在非生产环境试用。

另外,由于项目基于 SQLAlchemy,国内开发者可以方便地集成到现有 Flask 或 FastAPI 项目中。但注意,它目前不支持 MySQL,对于国内使用 MySQL 较多的场景可能不够友好,可以关注后续版本。

几条值得记住的细节

  • alchemy-utils 0.1a0 是 alpha 版本,功能可能不稳定,API 可能变化。
  • 支持 PostgreSQL、SQLite 和 DuckDB,通过 SQLAlchemy 实现多数据库兼容。
  • 核心 API 与 sqlite-utils 类似,包括 insert、upsert、insert_all、upsert_all、create、update 和表内省。
  • 安装方式:uvx --with 'alchemy-utils[postgresql]' alchemy-utils ...,可针对不同数据库添加 extra。
  • 项目使用 uv init 初始化,采用 TDD 和 pytest 测试,代码质量有保障。

一句话总结

alchemy-utils 让你用熟悉的 sqlite-utils 语法操作多种数据库,值得关注,但生产使用需谨慎。