package main
import (
"fmt"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
type Product struct {
ID uint
Name string
Features pq.StringArray `gorm:"type:varchar(64)[]"`
}
var db *gorm.DB
func main() {
dsn := "user=gorm password=gorm dbname=gorm port=9920 sslmode=disable TimeZone=Asia/Shanghai"
var err error
db, err = gorm.Open(postgres.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect to database")
}
err = db.AutoMigrate(&Product{})
if err != nil {
panic("failed to auto migrate")
}
p := Product{
Name: "Product 1",
Features: []string{"Feature A", "Feature B", "Feature C"},
}
db.Create(&p)
var retrievedProduct Product
db.First(&retrievedProduct, "name = ?", "Product 1")
fmt.Printf("Product ID: %d\n", retrievedProduct.ID)
fmt.Printf("Product Name: %s\n", retrievedProduct.Name)
fmt.Printf("Product Features: %v\n", retrievedProduct.Features)
}