Corrigiendo el error de Golang GORM AutoMigrate en PostgreSQL
Con el lanzamiento del nuevo driver pg, AutoMigrate está generando errores...
En mi nuevo proyecto en Go que estaba utilizando GORM comencé a obtener un error:
pq: got 2 parameters but the statement requires 1
Eso fue completamente inesperado, pero la solución fue sencilla: necesitaba actualizar hacia atrás el driver de postgres de gorm.
Tuve que actualizar hacia atrás en proyecto reciente desde
gorm.io/driver/postgres v1.5.11
a
gorm.io/driver/postgres v1.4.0
Después de hacer algunas búsquedas en Google encontré esta referencia de febrero de 2024
gorm@1.25.7 no es compatible con el driver postgres@1.5.6. #167
también de Reddit:
Siempre reviso mysql, redis y mongo exhaustivamente antes de lanzar una actualización.
Para postgres, solo hice la primera prueba de migración que siempre funcionó
pero no realicé pruebas con reejecución.
Sorprendentemente, la última versión funcional del driver de postgres es
gorm.io/driver/postgres v1.4.0!
también otro problema, pero parece que el error no es único: https://github.com/go-gorm/gorm/issues/5409
después de la actualización de v1.23.4 a v1.23.5 #5409
pq: got 1 parameters but the statement requires 0
Esta solución de corregir GORM y el driver de Postgresql funciona por ahora, en mayo de 2025.