在GORM中第一次迁移时插入种子数据



我想在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
}
}

最新更新