将Golang JSON存储到Postgresql中

我想将某个结构存储到其中具有JSON字段的数据库中。

type Comp struct {

CompId int64 `db:"comp_id" json:"comp_id"`

StartDate time.Time `db:"start_date" json:"start_date"`

EndDate time.Time `db:"end_date" json:"end_date"`

WeeklySchedule json.RawMessage `db:"weekly_schedule" json:"weekly_schedule"`

}

该表的架构为:

CREATE TABLE IF NOT EXISTS Tr.Comp(

comp_id SERIAL,

start_date timestamp NOT NULL,

end_date timestamp NOT NULL,

weekly_schedule json NOT NULL,

PRIMARY KEY (comp_id)

);

我在项目中使用sqlx和lib / pq驱动程序,并且不会执行以下操作。相反,它惊慌地说有一个零指针。DB是全局*sqlx.DB结构

    tx := DB.MustBegin()

compFixture := Comp{

StartDate: time.Now(),

EndDate: time.Now().AddDate(1, 0, 0),

WeeklySchedule: json.RawMessage([]byte("{}")),

}

_, err = tx.NamedExec(

`INSERT INTO

Tr.Comp(comp_id,

start_date, end_date, weekly_schedule)

VALUES (DEFAULT,

:start_date, :end_date, :weekly_schedule)

RETURNING comp_id;`, compFixture)

if err != nil {

t.Fatal("Error creating fixture.", err)

}

当我weekly_schedule从架构和固定装置中删除时,一切运行正常。但是由于某种原因,当包含此字段时,程序会出现紧急情况。关于如何weekly_schedule在数据库模式和Go结构中定义字段的任何想法?

回答:

SQLX有一个类型JSONTextgithub.com/jmoiron/sqlx/types,会做你需要什么

JSONText的文档

以上是 将Golang JSON存储到Postgresql中 的全部内容, 来源链接: utcz.com/qa/416209.html

回到顶部