GORM中不支持的数据类型

ee7vknir  于 2023-03-27  发布在  Go
关注(0)|答案(1)|浏览(368)

我目前正在探索GORM,并有以下结构:

type Datasource struct {
    gorm.Model
    Inputs     []string               `gorm: serializer:json`
    Outputs    []string               `gorm: serializer:json`
    Parameters map[string]interface{} `gorm: serializer:json`
}

我使用以下函数初始化连接:

func ConnectDatabase() {

    database, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})

    if err != nil {
        panic("Failed to connect to database!")
    }

    err = database.AutoMigrate(&Datasource{})
    if err != nil {
        return
    }

    inputs := []string{"input_1", "input_2", "input_3"}
    outputs := []string{"output_1"}
    parameters := map[string]interface{}{"host": "here.it.is", "port": 8090}

    database.Create(&Datasource{Inputs: inputs, Outputs: outputs, Parameters: parameters})

    DB = database
}

但在执行AutoMigrate时出现以下错误
[error] unsupported data type: &[]
我应该使用datatypes吗?
谢谢

yshpjwxd

yshpjwxd1#

实际上,上面的代码几乎可以正常工作。GORM本身支持JSON,但你必须正确注解你的代码:-)

type Datasource struct {
    gorm.Model
    Inputs     []string               `gorm:"serializer:json"`
    Outputs    []string               `gorm:"serializer:json"`
    Parameters map[string]interface{} `gorm:"serializer:json"`
}

查看此链接了解更多详细信息。

相关问题