修复 Golang GORM AutoMigrate PostgreSQL 错误

随着新版本 pg 驱动的发布,AutoMigrate 开始抛出错误...

在我使用 GORM 的新 Go 项目中,我开始遇到以下错误: pq: got 2 parameters but the statement requires 1

这完全出乎意料,但解决方案很简单——需要降级 gorm 的 postgres 驱动。

错误界面

我不得不在 最近的项目 中从

gorm.io/driver/postgres v1.5.11

降级到

gorm.io/driver/postgres v1.4.0

在进行了一些搜索后,我找到了 2024 年 2 月的参考资料:

gorm@1.25.7 与 postgres@1.5.6 驱动不兼容。  #167

还来自 Reddit 的信息:

我总是会在发布更新前彻底检查 mysql、redis 和 mongo。
对于 postgres,我只做了第一次迁移测试,这一直有效,
但没有进行重新运行的测试。
令人惊讶的是,最后一个正常工作的 postgres 驱动版本是
gorm.io/driver/postgres v1.4.0!

还有另一个问题,但看起来这个 bug 并不唯一:https://github.com/go-gorm/gorm/issues/5409

  从 v1.23.4 升级到 v1.23.5 #5409

  pq: got 1 parameters but the statement requires 0

截至目前为止,2025 年 5 月,修复 GORM 和 Postgresql 驱动的这个解决方案是有效的。

有用的链接