Fixare l'errore di Golang GORM AutoMigrate su PostgreSQL
Con il rilascio del nuovo driver pg AutoMigrate sta generando errori...
Nel mio nuovo progetto Go che utilizzava GORM, ho iniziato a ricevere un errore:
pq: got 2 parameters but the statement requires 1
Questo era completamente inaspettato, ma la soluzione era semplice: era necessario downgradare il driver di Postgres per GORM.
Avevo dovuto downgradare nel progetto recente da
gorm.io/driver/postgres v1.5.11
a
gorm.io/driver/postgres v1.4.0
Dopo aver fatto alcuni ricerche su Google, ho trovato questo riferimento di febbraio 2024
gorm@1.25.7 non è compatibile con il driver postgres@1.5.6. #167
anche da Reddit:
Controllo sempre MySQL, Redis e MongoDB in modo approfondito prima di rilasciare un aggiornamento.
Per Postgres, ho eseguito solo il primo test di migrazione che ha sempre funzionato
ma non ho testato con il rilancio.
Sorprendentemente, l'ultima versione funzionante del driver Postgres è
gorm.io/driver/postgres v1.4.0!
un altro problema, ma sembra che il bug non sia unico: https://github.com/go-gorm/gorm/issues/5409
dopo l'aggiornamento da v1.23.4 a v1.23.5 #5409
pq: got 1 parameters but the statement requires 0
Questa soluzione di correggere GORM e il driver Postgresql funziona per ora, a maggio 2025.