Estoy tratando de guardar una serie de números en un solo campo postgresql usando Gorm.
La matriz debe ser una lista con entre 2 y 13 números: [1, 2, 3, 5, 8, 13, 21, 40, 1000]
Todo funcionaba al guardar un solo archivo int64. Cuando intenté cambiar el modelo para tener en cuenta una matriz de int64, me da el siguiente error:
"pánico: tipo de sql no válido (segmento) para postgres"
mi modelo Gorm es:
type Game struct { gorm.Model GameCode string GameName string DeckType []int64 GameEndDate string }Actualización basada en la respuesta de @pacuna. Probé el código sugerido y obtengo un error similar.
"pánico: tipo de sql inválido Int64Array (segmento) para postgres"
Aquí está el bloque de código completo:
package main import ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/postgres" pq "github.com/lib/pq" ) var db *gorm.DB // Test -- Model for Game table type Test struct { gorm.Model GameCode string GameName string DeckType pq.Int64Array GameEndDate string } func main() { db, err := gorm.Open("postgres", "host=localhost port=5432 user=fullstack dbname=scratch_game sslmode=disable") if err != nil { fmt.Println(err.Error()) panic("Failed to connect to database...") } defer db.Close() dt := []int64{1, 2, 3} db.AutoMigrate(&Test{}) fmt.Println("Table Created") db.Create(&Test{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"}) fmt.Println("Record Added") }Debe usar tipos personalizados de la biblioteca subyacente:
type Game struct { gorm.Model GameCode string GameName string DeckType pq.Int64Array `gorm:"type:integer[]"` GameEndDate string } // example insertion dt := []int64{1, 2, 3} db.Create(&Game{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"})