gorm中 使用AutoMigrate 方法总是自动更新数据表的类型问题
r := gin.Default()
err := database.Db.AutoMigrate(&model.Article{})
if err != nil {
panic("Failed to migrate database!")
}
.....
// 在结构体中,我已经指定了数据库的类型,但数据库中总是自动更新数据表的字段类型为其他类型,并且一直报错:
[215.245ms] [rows:4] ALTER TABLE article_cate MODIFY COLUMN state bigint
Error 3780 (HY000): Referencing column 'article_cate_id' and referenced column 'id' in foreign key constraint 'fk_article_article_cate' are incompatible.
[1.077ms] [rows:0] ALTER TABLE article ADD CONSTRAINT fk_article_article_cate FOREIGN KEY (article_cate_id) REFERENCES article_cate(id)
panic: Failed to migrate database!
type Article struct {
gorm.Model
Title string `gorm:"type:varchar(255)"`
ArticleCateId int `gorm:"type:int"`
State int `gorm:"type:int"`
ArticleCate ArticleCate `gorm:"foreignKey:ArticleCateId"`
}
func (Article) TableName() string {
return "article"
}
type ArticleCate struct {
ID int
Title string `gorm:"type:varchar(255)"`
State int `gorm:"type:int"`
}
func (ArticleCate) TableName() string {
return "article_cate"
}