简体   繁体   English

如何指定数组gorm golang的默认值?

[英]how to specify default value of array gorm golang?

I use gorm and postgresql, this is model我使用 gorm 和 postgresql,这是 model

type Board struct {
    Id     uint `gorm:"primaryKey;autoIncrement;unique" json:"id"`
    Owner  uint `json:"owner"`
    Name string `json:"name"`
    Contributors []int `gorm:"type:jsonb" json:"contributors"`
    GeneratedLink string `gorm:"default:''" json:"generated_link"`
    Todos []TodoStructure `gorm:"type:jsonb;default:[]" json:"todos"`
}

type TodoStructure struct {
    Id string
    Text string
    Completed bool
    Important bool
}

in Todo value i specified default value as [] but when i run app i got this error在 Todo 值中,我将默认值指定为 [] 但是当我运行应用程序时出现此错误

ERROR: syntax error at or near "[" (SQLSTATE 42601)
[100.528ms] [rows:0] CREATE TABLE "boards" ("id" bigserial UNIQUE,"owner" bigint,"name" text,"contributors" jsonb,"generated_link" text DEFAULT '',"todos" jsonb DEFAULT [],PRIMARY KEY ("id"))
panic: ERROR: syntax error at or near "[" (SQLSTATE 42601)

so how to specify array as default value?那么如何将数组指定为默认值?

try putting quotes like this gorm:"type:jsonb;default:'[]'" json:"todos"尝试使用这样的引号gorm:"type:jsonb;default:'[]'" json:"todos"

type Board struct {
    Id     uint `gorm:"primaryKey;autoIncrement;unique" json:"id"`
    Owner  uint `json:"owner"`
    Name string `json:"name"`
    Contributors []int `gorm:"type:jsonb" json:"contributors"`
    GeneratedLink string `gorm:"default:''" json:"generated_link"`
    Todos []TodoStructure `gorm:"type:jsonb;default:'[]'" json:"todos"`
}

for more reference you can refer this link如需更多参考,您可以参考此链接

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM