我想在AutoMigrate
在数据库中创建表时插入种子数据。
当我执行db.AutoMigrate(&User{})
时,它没有返回任何与表创建相关的信息,所以我不能确认表已经创建、更新,或者没有做任何事情。
是否有办法知道表的创建信息从GORM插入种子数据?
这样我就可以插入种子数据了
if err = db.AutoMigrate(&User{}); err != nil {
if db.CreatedFirstTime {
//Insert seed data
}
}
根据docs,您无法从db.AutoMigrate(&User{})
获取表创建信息。尝试使用Migrator
与查询组合来获取表的信息。
例如:
if err = db.AutoMigrate(&User{}); err == nil && db.Migrator().HasTable(&User{}) {
if err := db.First(&User{}).Error; errors.Is(err, gorm.ErrRecordNotFound) {
//Insert seed data
}
}