gormt icon indicating copy to clipboard operation
gormt copied to clipboard

自增字段tag缺失,迁移后,创建的表无自增属性,导致执行sql失败

Open wclssdn opened this issue 2 years ago • 7 comments

数据表中的主键是自增的,生成go文件后,tag中未包含自增的描述autoIncrement

ID       uint32 `gorm:"primaryKey;column:id;type:int unsigned;not null"`

当执行db. AutoMigrate后,插入一条数据会报错:

Could not save row: Error 1364: Field 'id' doesn't have a default value

gorm迁移的sql语句是:

CREATE TABLE `rank` (`id` int unsigned NOT NULL,PRIMARY KEY (`id`))

解决方案:在生成go文件的时候,把是否自增的信息写进tag中。

详细tag参考:https://gorm.io/zh_CN/docs/models.html#%E5%AD%97%E6%AE%B5%E6%A0%87%E7%AD%BE

经过了解,这是两个bug:

  1. gormt没有把autoIncrement写进tag中(不过,该实现还是要实现的吧~
  2. gorm没有实现autoIncrement (参考:https://github.com/go-gorm/gorm/issues/5266

wclssdn avatar Jun 23 '22 10:06 wclssdn

好的,收到

xxjwxc avatar Jun 23 '22 11:06 xxjwxc

我提交gorm的修复pr没有被接受,因为改动不兼容其他的db。。。 放弃提交了。。。

wclssdn avatar Jul 05 '22 11:07 wclssdn

更新了下,请查看,未测试 https://github.com/xxjwxc/gormt/commit/fc112a736bddaf8e66dc149381d163b19a0794ff

xxjwxc avatar Jul 05 '22 12:07 xxjwxc

我提交gorm的修复pr没有被接受,因为改动不兼容其他的db。。。 放弃提交了。。。

我没有看到你的pr

xxjwxc avatar Jul 05 '22 14:07 xxjwxc

我给关了。。。 https://github.com/go-gorm/gorm/pull/5452

wclssdn avatar Jul 06 '22 08:07 wclssdn

更新了下,请查看,未测试 fc112a7

你这个字段名字叫的不那么达意呀~ 哈哈哈哈 要么也跟gorm叫的一样。。。 autoIncrement 呢~

wclssdn avatar Jul 06 '22 08:07 wclssdn

这:https://github.com/xxjwxc/gormt/commit/3dea08f1e40f0e6db6a4a393551e94d5beb1d0ec gormt : gorm tools

xxjwxc avatar Jul 06 '22 10:07 xxjwxc