我正在使用 gorp 和 *DBMap.addTableWithName() 函数来创建表。
如果我有以下情况:
...
type S1 struct {
Id int `db:"id"`
Name string `db:"name"`
Value string `db:"value"`
}
dbmap := &gorp.DbMap{Db: db, Dialect: gorp.PostgresDialect{}}
dbmap.AddTableWithName(S1{}, "s1Table").SetKeys(true, "Id")
...
哪个按预期工作。
如果我将结构修改为此
...
type S1 struct {
Id int `db:"id"`
Name string `db:"name"`
Value string `db:"value"`
Extra string `db:"extra"`
}
...
然后表没有用新的结构结构修改。
如果我手动修改数据库
ALTER TABLE s1Table ADD COLUMN extra text;
然后运行我回来的任何查询
sql: Scan error on column index 3, name "extra": converting NULL to string is unsupported
我浏览了 GoDocs 中的 gorp,但没有什么可以作为解决方案。
我的问题是 - gorp 是否可以管理这些表更改?如果不是,那么如何才能不导致converting NULL to string is unsupported
错误。