У нас есть приложение go, в котором мы используем Postgres в качестве внутренней базы данных.Мы используем https://github.com/jmoiron/sqlx для связи с БД.Код для чтения всех строк из таблицы выглядит следующим образом:
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.Unsafe, как описано здесь
Есть ли другой идиоматический способ справиться с этой ситуацией?