diff --git a/database/models.go b/database/models.go index 2d645e6c..2c304e80 100644 --- a/database/models.go +++ b/database/models.go @@ -83,11 +83,16 @@ type Vulnerability struct { type MetadataMap map[string]interface{} func (mm *MetadataMap) Scan(value interface{}) error { - val, ok := value.([]byte) - if !ok { + if value == nil { return nil } - return json.Unmarshal(val, mm) + + // github.com/lib/pq decodes TEXT/VARCHAR fields into strings. + val, ok := value.(string) + if !ok { + panic("got type other than []byte from database") + } + return json.Unmarshal([]byte(val), mm) } func (mm *MetadataMap) Value() (driver.Value, error) {