You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Golang sqlc如何基于schema.sql自动生成PostgreSQL表?

sqlc 表创建问题解答

核心说明

sqlc 不会自动在数据库中创建表,它的核心功能是根据你提供的schema定义和SQL查询,生成对应的Go业务代码,完全不负责数据库的表结构创建或schema迁移工作。

正确的表创建方式

你必须手动执行schema.sql中的建表语句,常见的几种方法:

  • 用PostgreSQL自带的psql工具:连接目标数据库后,执行命令 \i schema.sql,直接运行脚本里的DDL语句。
  • 使用专业的数据库迁移工具:比如golang-migrate、Flyway这类工具,把schema.sql作为初始迁移脚本,通过工具自动执行建表操作,这种方式更适合团队协作和生产环境。
  • 快速测试场景下,可以在Go初始化代码里直接执行建表SQL:通过db.Exec()方法执行CREATE TABLE...语句,但这种方式不推荐用于生产环境。

错误原因

你运行go run main.go时,代码尝试访问authors表,但这个表还没在数据库中创建,所以PostgreSQL返回了pq: relation "authors" does not exist的错误。sqlc只是基于你的schema文件生成代码,不会主动和数据库交互执行建表操作。

内容的提问来源于stack exchange,提问作者bltz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 05:10:17