我们有一个使用 Postgres 作为后端数据库的 go 应用程序。我们使用https://github.com/jmoiron/sqlx与 DB 进行通信。从表中读取所有行的代码如下:
rows, err := repo.db.Queryx(ListNodesQuery)
if err != nil {
repo.logger.Log("method", "ListNodes", "error", err)
return nil, err
}
r := []*Node{}
for rows.Next() {
var n Node
err = rows.StructScan(&n)
}
在数据库中添加新列后,代码按预期错误如下
missing destination name type in *Node
因为 db 表有更多的列。更改代码以同时更新结构当然是不可能的。
我看到关闭此错误的一种方法是使用此处记录的db.Unsafe
有没有其他惯用的方法来处理这种情况?