如何使用GORM和postgresql插入和选择具有inet数据类型的IP地址表?
这是我的模型
import (
"github.com/jackc/pgtype"
)
...
ClientIp pgtype.Inet `json:"client_ip" gorm:"type:inet;not null"`
...
我正在尝试将字符串格式的IP地址解析为PostgreSQL数据库中的pgtype.Inet
类型,就像在插入到数据库时这样操作。
import (
"net"
)
...
ClientIp: net.ParseIP(c.IP()),
...
我们被告知要使用net
包来解析IP地址,但是这会导致错误。
cannot use net.ParseIP(c.IP()) (type net.IP) as type pgtype.Inet in field value
我还尝试使用net
包来建模
import (
"net"
)
...
ClientIp net.IP `json:"client_ip" gorm:"type:inet;not null"`
...
但是一直收到这个错误。
sql: Scan error on column index 16, name "client_ip": unsupported Scan, storing driver.Value type string into type *net.IP
那么,我们如何使用GORM在PostgreSQL中存储inet
值呢?
inet
或cidr
类型,并且包括如文档所述的掩码https://www.postgresql.org/docs/current/datatype-net-types.html。 - kostixpgtype.Inet.Set
的源代码?它返回什么?你理解它是如何工作的吗?我的意思是,作为SO上的志愿者(是一个提供无偿帮助的资源),我只愿意帮助有趣的任务,而不是教授某种语言的基础知识或为你阅读现成的源代码。这对我来说不是有趣的事情,就像任何无偿帮助一样,这是“要么接受,要么离开”的事情。你认为我没能帮上忙?我不同意,但如果你不想自己动手帮助自己,那也没关系。 - kostix