一个用于数据库结构迁移的 CLI 与 Go 库,支持 SQL 文件和 Go 函数两种迁移方式。
sqlc-dev/sqlc
SQL 编译器,读取 SQL 查询并生成类型安全的 Go、Kotlin、Python 和 TypeScript 代码。
- Star
- 18,401
- Fork
- 1,102
- 未关闭 Issue
- 695
- 最近提交
- 23小时前
这是什么?
sqlc 把 SQL 查询编译成类型安全的应用代码。你用 SQL 编写查询,运行 sqlc 后,它会生成带有类型化输入和输出的函数,应用可以直接调用,无需通过 ORM 或字符串拼接来构造查询。
工具基于 SQL 的 schema 和查询语句工作,因此生成的代码与实际数据库结构保持一致。官方代码生成器覆盖 Go、Kotlin、Python 和 TypeScript,也可以通过插件支持更多语言。项目还提供在线 playground,便于在安装前试用。
sqlc 使用 Go 编写,采用 MIT 许可证,支持 PostgreSQL、MySQL 和 SQLite。
核心功能
- 01根据 SQL 查询生成带类型的 Go、Kotlin、Python 和 TypeScript 函数
- 02基于 SQL schema 工作,生成的代码与数据库结构保持一致
- 03可通过社区语言插件扩展支持的语言
- 04提供在线 playground,便于试用查询
适用场景
- 构建不使用 ORM、直接访问 PostgreSQL 或 MySQL 的 Go 服务
- 让数据库访问代码与 schema 保持类型检查
- 为 Python 或 TypeScript 后端生成数据访问层
快速上手
- 1
使用 Go 通过 README 中的安装命令安装 sqlc
- 2
阅读官方安装指南了解其他安装方式
- 3
在交互式 Playground 中试用 sqlc
标签
常见问题
- sqlc 是什么?
- SQL 编译器,读取 SQL 查询并生成类型安全的 Go、Kotlin、Python 和 TypeScript 代码。 sqlc 把 SQL 查询编译成类型安全的应用代码。你用 SQL 编写查询,运行 sqlc 后,它会生成带有类型化输入和输出的函数,应用可以直接调用,无需通过 ORM 或字符串拼接来构造查询。
- sqlc 可以免费使用吗?用的什么许可证?
- sqlc 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- sqlc 还在维护吗?
- 活跃维护中。sqlc 最近一次提交是在 2026年10月21日。
- sqlc 适合用来做什么?
- 构建不使用 ORM、直接访问 PostgreSQL 或 MySQL 的 Go 服务 让数据库访问代码与 schema 保持类型检查 为 Python 或 TypeScript 后端生成数据访问层
- sqlc 怎么安装和运行?
- 使用 Go 通过 README 中的安装命令安装 sqlc 阅读官方安装指南了解其他安装方式 在交互式 Playground 中试用 sqlc
- 在哪里获取 sqlc?
- 源代码和安装说明在 GitHub 上:https://github.com/sqlc-dev/sqlc
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个轻量、与框架无关的命令行工具,用纯 SQL 管理数据库迁移,适用于多人协作和多环境部署。
轻量级、无头的 TypeScript ORM,支持 PostgreSQL、MySQL 和 SQLite,可运行于 Node.js、Bun、Deno 及边缘运行时。
面向 Node.js 与 TypeScript 的 ORM,支持 PostgreSQL、MySQL、SQLite 等多种数据库。
跨平台 SQL 编辑器与数据库管理工具,支持 Linux、macOS 和 Windows,可连接 MySQL、PostgreSQL、SQLite 等多种数据库。
基于 Go 的数据库迁移工具,提供 CLI 和库,按顺序将结构变更应用到多种数据库。