Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 添加结构数据中断调用_Database_Postgresql_Go_Gorp - Fatal编程技术网

Database 添加结构数据中断调用

Database 添加结构数据中断调用,database,postgresql,go,gorp,Database,Postgresql,Go,Gorp,我正在使用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{},

我正在使用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添加列额外文本

然后运行我得到的任何查询
sql:column index 3上的扫描错误,名称“extra”:不支持将NULL转换为字符串

我已经查过戈多克的资料找戈普,但没有任何东西能帮我找到解决办法


我的问题是-gorp是否可以管理这些表更改?如果不是,那么如何做才能不导致
不支持将NULL转换为字符串的
错误。

尝试添加额外的指针:Extra*string或者更改列以具有
非NULL
约束,并为其设置
默认值“”
,这样,该表中的任何行都不会将该列设置为
NULL
。或者,使用
sql.NullString
,或者
*string
而不是
string
作为
Extra
字段的类型。谢谢@mkopriva-我一直在尝试将空白字符串的默认值设置为“not”(PEBKAC)。你知道如何在gorp中管理这些变化吗?另外,如果您将命令更改为答案,我会将其标记为一个偶然的结果,因为我没有gorp的经验,所以我不知道如何使用它处理迁移。