0

我正在使用 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错误。

4

0 回答 0